f16f39c3fc
Now that VFIO has a PCI hot reset interface, take advantage of it. There are two modes that we need to consider. The first is when only one device within the set of devices affected is actually assigned to the guest. In this case the other devices are are just held by VFIO for isolation and we can pretend they're not there, doing an entire bus reset whenever the device reset callback is triggered. Supporting this case separately allows us to do the best reset we can do of the device even if the device is hotplugged. The second mode is when multiple affected devices are all exposed to the guest. In this case we can only do a hot reset when the entire system is being reset. However, this also allows us to track which individual devices are affected by a reset and only do them once. We split our reset function into pre- and post-reset helper functions prioritize the types of device resets available to us, and create separate _one vs _multi reset interfaces to handle the distinct cases above. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> |
||
---|---|---|
.. | ||
macio | ||
a9scu.c | ||
applesmc.c | ||
arm_l2x0.c | ||
arm_sysctl.c | ||
cbus.c | ||
debugexit.c | ||
eccmemctl.c | ||
exynos4210_pmu.c | ||
imx_ccm.c | ||
ivshmem.c | ||
lm32_sys.c | ||
Makefile.objs | ||
max111x.c | ||
milkymist-hpdmc.c | ||
milkymist-pfpu.c | ||
mst_fpga.c | ||
omap_clk.c | ||
omap_gpmc.c | ||
omap_l4.c | ||
omap_sdrc.c | ||
omap_tap.c | ||
pc-testdev.c | ||
pci-testdev.c | ||
puv3_pm.c | ||
pvpanic.c | ||
pxa2xx_pcmcia.c | ||
sga.c | ||
slavio_misc.c | ||
tmp105.c | ||
tmp105.h | ||
vfio.c | ||
vmport.c | ||
zynq_slcr.c |