mirror of
https://github.com/qemu/qemu.git
synced 2025-01-21 04:53:26 +08:00
hw/hyperv/vmbus: Use device_cold_reset() and bus_cold_reset()
In the vmbus code we currently use the legacy functions qdev_reset_all() and qbus_reset_all(). These perform a recursive reset, starting from either a qbus or a qdev. However they do 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() and bus_cold_reset() functions. These also perform a recursive reset, where first the children are reset and then finally the parent, but they use the new (...in 2020...) Resettable mechanism, which supports both the old style single-reset method and also the new 3-phase reset handling. This should be a no-behaviour-change commit which just reduces the use of a deprecated API. Commit created with: sed -i -e 's/qdev_reset_all/device_cold_reset/g;s/qbus_reset_all/bus_cold_reset/g' hw/hyperv/*.c Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
78e4d5cbaf
commit
8cadd251b0
@ -1578,7 +1578,7 @@ static bool vmbus_initialized(VMBus *vmbus)
|
||||
|
||||
static void vmbus_reset_all(VMBus *vmbus)
|
||||
{
|
||||
qbus_reset_all(BUS(vmbus));
|
||||
bus_cold_reset(BUS(vmbus));
|
||||
}
|
||||
|
||||
static void post_msg(VMBus *vmbus, void *msgdata, uint32_t msglen)
|
||||
@ -2035,7 +2035,7 @@ static void vdev_reset_on_close(VMBusDevice *vdev)
|
||||
}
|
||||
|
||||
/* all channels closed -- reset device */
|
||||
qdev_reset_all(DEVICE(vdev));
|
||||
device_cold_reset(DEVICE(vdev));
|
||||
}
|
||||
|
||||
static void handle_close_channel(VMBus *vmbus, vmbus_message_close_channel *msg,
|
||||
|
Loading…
Reference in New Issue
Block a user