[PATCH 1/8] qdev: Add force argument to qdev_unplug
Dongli Zhang <[email protected]>
| Newsgroups | org.nongnu.qemu-devel,org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <[email protected]> |
Add a force argument to qdev_unplug() and update all existing callers to pass false. No functional change. The upcoming patches will add the hotplug controller callback used to implement it to force detach a PCI device. Signed-off-by: Dongli Zhang <[email protected]> --- hw/s390x/s390-pci-bus.c | 4 ++-- hw/vfio/ap.c | 2 +- hw/vfio/ccw.c | 2 +- hw/vfio/pci.c | 2 +- hw/xen/xen-legacy-backend.c | 2 +- hw/xen/xen_pvdev.c | 2 +- include/hw/core/qdev.h | 2 +- system/qdev-monitor.c | 4 ++-- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index eff980fdfe..11ff9bcce5 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1276,7 +1276,7 @@ static void s390_pcihost_unplug_request(HotplugHandler *hotplug_dev, } pbdev->pci_unplug_request_processed = true; - qdev_unplug(DEVICE(pbdev), errp); + qdev_unplug(DEVICE(pbdev), false, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_S390_PCI_DEVICE)) { pbdev = S390_PCI_DEVICE(dev); @@ -1287,7 +1287,7 @@ static void s390_pcihost_unplug_request(HotplugHandler *hotplug_dev, * is not blocked, e.g. because it's a PCI bridge). */ if (pbdev->pdev && !pbdev->pci_unplug_request_processed) { - qdev_unplug(DEVICE(pbdev->pdev), errp); + qdev_unplug(DEVICE(pbdev->pdev), false, errp); return; } pbdev->pci_unplug_request_processed = false; diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 6e2a1223ea..8e7c72dc8b 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -79,7 +79,7 @@ static void vfio_ap_req_notifier_handler(void *opaque) return; } - qdev_unplug(DEVICE(vapdev), &err); + qdev_unplug(DEVICE(vapdev), false, &err); if (err) { warn_reportf_err(err, VFIO_MSG_PREFIX, vapdev->vdev.name); diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index c3dc7c1962..c7d48966dc 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -282,7 +282,7 @@ static void vfio_ccw_req_notifier_handler(void *opaque) return; } - qdev_unplug(DEVICE(vcdev), &err); + qdev_unplug(DEVICE(vcdev), false, &err); if (err) { warn_reportf_err(err, VFIO_MSG_PREFIX, vcdev->vdev.name); } diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 428ab2f069..aafa841241 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3328,7 +3328,7 @@ static void vfio_req_notifier_handler(void *opaque) return; } - qdev_unplug(DEVICE(vdev), &err); + qdev_unplug(DEVICE(vdev), false, &err); if (err) { warn_reportf_err(err, VFIO_MSG_PREFIX, vdev->vbasedev.name); } diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c index 7977b52712..4aa0339887 100644 --- a/hw/xen/xen-legacy-backend.c +++ b/hw/xen/xen-legacy-backend.c @@ -186,7 +186,7 @@ static struct XenLegacyDevice *xen_be_get_xendev(const char *type, int dom, xendev->evtchndev = qemu_xen_evtchn_open(); if (xendev->evtchndev == NULL) { xen_pv_printf(NULL, 0, "can't open evtchn device\n"); - qdev_unplug(DEVICE(xendev), NULL); + qdev_unplug(DEVICE(xendev), false, NULL); return NULL; } qemu_set_cloexec(qemu_xen_evtchn_fd(xendev->evtchndev)); diff --git a/hw/xen/xen_pvdev.c b/hw/xen/xen_pvdev.c index e36370e2ee..9518f5b3b5 100644 --- a/hw/xen/xen_pvdev.c +++ b/hw/xen/xen_pvdev.c @@ -273,7 +273,7 @@ void xen_pv_del_xendev(struct XenLegacyDevice *xendev) QTAILQ_REMOVE(&xendevs, xendev, next); - qdev_unplug(DEVICE(xendev), NULL); + qdev_unplug(DEVICE(xendev), false, NULL); } void xen_pv_insert_xendev(struct XenLegacyDevice *xendev) diff --git a/include/hw/core/qdev.h b/include/hw/core/qdev.h index 37f7d33551..c1daa74914 100644 --- a/include/hw/core/qdev.h +++ b/include/hw/core/qdev.h @@ -527,7 +527,7 @@ bool qdev_hotunplug_allowed(DeviceState *dev, Error **errp); * or NULL if there aren't any. */ HotplugHandler *qdev_get_hotplug_handler(DeviceState *dev); -void qdev_unplug(DeviceState *dev, Error **errp); +void qdev_unplug(DeviceState *dev, bool force, Error **errp); int qdev_sync_config(DeviceState *dev, Error **errp); void qdev_simple_device_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp); diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index 00fed791cc..3606a347a0 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -912,7 +912,7 @@ static DeviceState *find_device_state(const char *id, bool use_generic_error, return dev; } -void qdev_unplug(DeviceState *dev, Error **errp) +void qdev_unplug(DeviceState *dev, bool force, Error **errp) { HotplugHandler *hotplug_ctrl; HotplugHandlerClass *hdc; @@ -960,7 +960,7 @@ void qmp_device_del(const char *id, Error **errp) return; } - qdev_unplug(dev, errp); + qdev_unplug(dev, false, errp); } } -- 2.43.5