From: Chen Fan <chen.fan.f...@cn.fujitsu.com> when a physical device aer occurred, the device state probably is not in D0 in a short time, if we recover the device quickly. we may stuck in D3 state when force to change device state to D0. we may need to wait for a short time to inject the error to guest.
Signed-off-by: Chen Fan <chen.fan.f...@cn.fujitsu.com> --- hw/vfio/pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 25fc095..5216e7f 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -2658,6 +2658,9 @@ static void vfio_err_notifier_handler(void *opaque) msg.severity = isfatal ? PCI_ERR_ROOT_CMD_FATAL_EN : PCI_ERR_ROOT_CMD_NONFATAL_EN; + /* wait a bit to ensure aer device is ready */ + usleep(2 * 1000); + pcie_aer_msg(dev, &msg); return; } -- 1.9.3