pci: mark device having guest unplug request pending
Set pending_deleted_event in DeviceState for failover primary devices that were successfully unplugged by the Guest OS. Signed-off-by: Jens Freimann <jfreimann@redhat.com> Message-Id: <20191029114905.6856-5-jfreimann@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
a99c4da9fc
commit
c000a9bd06
@ -457,6 +457,7 @@ static void pcie_unplug_device(PCIBus *bus, PCIDevice *dev, void *opaque)
|
|||||||
HotplugHandler *hotplug_ctrl = qdev_get_hotplug_handler(DEVICE(dev));
|
HotplugHandler *hotplug_ctrl = qdev_get_hotplug_handler(DEVICE(dev));
|
||||||
|
|
||||||
if (dev->partially_hotplugged) {
|
if (dev->partially_hotplugged) {
|
||||||
|
dev->qdev.pending_deleted_event = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
hotplug_handler_unplug(hotplug_ctrl, DEVICE(dev), &error_abort);
|
hotplug_handler_unplug(hotplug_ctrl, DEVICE(dev), &error_abort);
|
||||||
@ -476,6 +477,8 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *hotplug_dev,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dev->pending_deleted_event = true;
|
||||||
|
|
||||||
/* In case user cancel the operation of multi-function hot-add,
|
/* In case user cancel the operation of multi-function hot-add,
|
||||||
* remove the function that is unexposed to guest individually,
|
* remove the function that is unexposed to guest individually,
|
||||||
* without interaction with guest.
|
* without interaction with guest.
|
||||||
|
Loading…
Reference in New Issue
Block a user