qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 11/13] hw/s390x/ipl: replace deprecated qdev_reset_all reg


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v5 11/13] hw/s390x/ipl: replace deprecated qdev_reset_all registration
Date: Fri, 1 Nov 2019 00:38:26 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1

On 10/18/19 5:06 PM, Damien Hedde wrote:
Replace deprecated qdev_reset_all by resettable_cold_reset_fn for
the ipl registration in the main reset handlers.

This does not impact the behavior for the following reasons:
+ at this point resettable just call the old reset methods of devices
   and buses in the same order than qdev/qbus.
+ resettable handlers registered with qemu_register_reset are
   serialized; there is no interleaving.
+ eventual explicit calls to legacy reset API (device_reset or
   qdev/qbus_reset) inside this reset handler will not be masked out
   by resettable mechanism; they do not go through resettable api.

Signed-off-by: Damien Hedde <address@hidden>
---
Cc: Cornelia Huck <address@hidden>
Cc: address@hidden
Cc: Christian Borntraeger <address@hidden>
Cc: Thomas Huth <address@hidden>
---
  hw/s390x/ipl.c | 10 +++++++++-
  1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index ca544d64c5..2689f7a017 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -237,7 +237,15 @@ static void s390_ipl_realize(DeviceState *dev, Error 
**errp)
       */
      ipl->compat_start_addr = ipl->start_addr;
      ipl->compat_bios_start_addr = ipl->bios_start_addr;
-    qemu_register_reset(qdev_reset_all_fn, dev);
+    /*
+     * Because this Device is not on any bus in the qbus tree (it is
+     * not a sysbus device and it's not on some other bus like a PCI
+     * bus) it will not be automatically reset by the 'reset the
+     * sysbus' hook registered by vl.c like most devices. So we must
+     * manually register a reset hook for it.

:)

+     * TODO: there should be a better way to do this.

:(

+     */
+    qemu_register_reset(resettable_cold_reset_fn, dev);

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

  error:
      error_propagate(errp, err);
  }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]