Message ID | 20221104161513.2455862-8-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | reset: Remove some deprecated APIs | expand |
On 04/11/2022 16:15, Peter Maydell wrote: > The legacy function qdev_reset_all() performs a recursive reset, > starting from a qdev. However, it does not permit any of the devices > in the tree to use three-phase reset, because device reset goes > through the device_legacy_reset() function that only calls the single > DeviceClass::reset method. > > Switch to using the device_cold_reset() function instead. This also > performs a recursive reset, where first the children are reset and > then finally the parent, but it uses the new (...in 2020...) > Resettable mechanism, which supports both the old style single-reset > method and also the new 3-phase reset handling. > > This commit changes the five remaining uses of this function. > > Commit created with: > sed -i -e 's/qdev_reset_all/device_cold_reset/g' hw/i386/xen/xen_platform.c hw/input/adb.c hw/remote/vfio-user-obj.c hw/s390x/s390-virtio-ccw.c hw/usb/dev-uas.c > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > hw/i386/xen/xen_platform.c | 2 +- Reviewed-by: Paul Durrant <paul@xen.org> > hw/input/adb.c | 2 +- > hw/remote/vfio-user-obj.c | 2 +- > hw/s390x/s390-virtio-ccw.c | 2 +- > hw/usb/dev-uas.c | 2 +- > 5 files changed, 5 insertions(+), 5 deletions(-)
On 4/11/22 17:15, Peter Maydell wrote: > The legacy function qdev_reset_all() performs a recursive reset, > starting from a qdev. However, it does not permit any of the devices > in the tree to use three-phase reset, because device reset goes > through the device_legacy_reset() function that only calls the single > DeviceClass::reset method. > > Switch to using the device_cold_reset() function instead. This also > performs a recursive reset, where first the children are reset and > then finally the parent, but it uses the new (...in 2020...) > Resettable mechanism, which supports both the old style single-reset > method and also the new 3-phase reset handling. > > This commit changes the five remaining uses of this function. > > Commit created with: > sed -i -e 's/qdev_reset_all/device_cold_reset/g' hw/i386/xen/xen_platform.c hw/input/adb.c hw/remote/vfio-user-obj.c hw/s390x/s390-virtio-ccw.c hw/usb/dev-uas.c > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > hw/i386/xen/xen_platform.c | 2 +- > hw/input/adb.c | 2 +- > hw/remote/vfio-user-obj.c | 2 +- > hw/s390x/s390-virtio-ccw.c | 2 +- > hw/usb/dev-uas.c | 2 +- > 5 files changed, 5 insertions(+), 5 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c index a64265cca07..7db0d94ec28 100644 --- a/hw/i386/xen/xen_platform.c +++ b/hw/i386/xen/xen_platform.c @@ -177,7 +177,7 @@ static void pci_xen_ide_unplug(DeviceState *dev, bool aux) blk_unref(blk); } } - qdev_reset_all(dev); + device_cold_reset(dev); } static void unplug_disks(PCIBus *b, PCIDevice *d, void *opaque) diff --git a/hw/input/adb.c b/hw/input/adb.c index 84331b9fce6..214ae6f42b3 100644 --- a/hw/input/adb.c +++ b/hw/input/adb.c @@ -43,7 +43,7 @@ static const char *adb_commands[] = { static void adb_device_reset(ADBDevice *d) { - qdev_reset_all(DEVICE(d)); + device_cold_reset(DEVICE(d)); } static int do_adb_request(ADBBusState *s, uint8_t *obuf, const uint8_t *buf, diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c index c6cc53acf2d..6ff14e0b9c0 100644 --- a/hw/remote/vfio-user-obj.c +++ b/hw/remote/vfio-user-obj.c @@ -685,7 +685,7 @@ static int vfu_object_device_reset(vfu_ctx_t *vfu_ctx, vfu_reset_type_t type) return 0; } - qdev_reset_all(DEVICE(o->pci_dev)); + device_cold_reset(DEVICE(o->pci_dev)); return 0; } diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 806de32034c..13a9ca62800 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -110,7 +110,7 @@ static void subsystem_reset(void) for (i = 0; i < ARRAY_SIZE(reset_dev_types); i++) { dev = DEVICE(object_resolve_path_type("", reset_dev_types[i], NULL)); if (dev) { - qdev_reset_all(dev); + device_cold_reset(dev); } } } diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c index 5192b062d6f..88f99c05d53 100644 --- a/hw/usb/dev-uas.c +++ b/hw/usb/dev-uas.c @@ -791,7 +791,7 @@ static void usb_uas_task(UASDevice *uas, uas_iu *iu) case UAS_TMF_LOGICAL_UNIT_RESET: trace_usb_uas_tmf_logical_unit_reset(uas->dev.addr, tag, lun); - qdev_reset_all(&dev->qdev); + device_cold_reset(&dev->qdev); usb_uas_queue_response(uas, tag, UAS_RC_TMF_COMPLETE); break;
The legacy function qdev_reset_all() performs a recursive reset, starting from a qdev. However, it does not permit any of the devices in the tree to use three-phase reset, because device reset goes through the device_legacy_reset() function that only calls the single DeviceClass::reset method. Switch to using the device_cold_reset() function instead. This also performs a recursive reset, where first the children are reset and then finally the parent, but it uses the new (...in 2020...) Resettable mechanism, which supports both the old style single-reset method and also the new 3-phase reset handling. This commit changes the five remaining uses of this function. Commit created with: sed -i -e 's/qdev_reset_all/device_cold_reset/g' hw/i386/xen/xen_platform.c hw/input/adb.c hw/remote/vfio-user-obj.c hw/s390x/s390-virtio-ccw.c hw/usb/dev-uas.c Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- hw/i386/xen/xen_platform.c | 2 +- hw/input/adb.c | 2 +- hw/remote/vfio-user-obj.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- hw/usb/dev-uas.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)