[PATCH for-9.2 06/10] hw/remote/message.c: Don't directly invoke DeviceClass:reset

Peter Maydell posted 10 patches 3 months, 1 week ago
There is a newer version of this series
[PATCH for-9.2 06/10] hw/remote/message.c: Don't directly invoke DeviceClass:reset
Posted by Peter Maydell 3 months, 1 week ago
Directly invoking the DeviceClass::reset method is a bad idea,
because if the device is using three-phase reset then it relies on
transitional reset machinery which is likely to disappear at some
point.

Reset the device in the standard way, by calling device_cold_reset().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/remote/message.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/hw/remote/message.c b/hw/remote/message.c
index 50f6bf2d495..38ae6c75b4e 100644
--- a/hw/remote/message.c
+++ b/hw/remote/message.c
@@ -215,13 +215,10 @@ fail:
 static void process_device_reset_msg(QIOChannel *ioc, PCIDevice *dev,
                                      Error **errp)
 {
-    DeviceClass *dc = DEVICE_GET_CLASS(dev);
     DeviceState *s = DEVICE(dev);
     MPQemuMsg ret = { 0 };
 
-    if (dc->reset) {
-        dc->reset(s);
-    }
+    device_cold_reset(s);
 
     ret.cmd = MPQEMU_CMD_RET;
 
-- 
2.34.1
Re: [PATCH for-9.2 06/10] hw/remote/message.c: Don't directly invoke DeviceClass:reset
Posted by Philippe Mathieu-Daudé 3 months, 1 week ago
On 13/8/24 18:52, Peter Maydell wrote:
> Directly invoking the DeviceClass::reset method is a bad idea,
> because if the device is using three-phase reset then it relies on
> transitional reset machinery which is likely to disappear at some
> point.

This seems like fix-for-9.1 material.

> Reset the device in the standard way, by calling device_cold_reset().
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>   hw/remote/message.c | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>



Re: [PATCH for-9.2 06/10] hw/remote/message.c: Don't directly invoke DeviceClass:reset
Posted by Richard Henderson 3 months, 1 week ago
On 8/14/24 02:52, Peter Maydell wrote:
> Directly invoking theDeviceClass::reset method is a bad idea,
> because if the device is using three-phase reset then it relies on
> transitional reset machinery which is likely to disappear at some
> point.
> 
> Reset the device in the standard way, by calling device_cold_reset().
> 
> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>
> ---
>   hw/remote/message.c | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~