diff mbox

Register only one qbus_reset_all_fn() for system bus

Message ID 1298243333-23799-1-git-send-email-dbaryshkov@gmail.com
State New
Headers show

Commit Message

Dmitry Baryshkov Feb. 20, 2011, 11:08 p.m. UTC
Currently reset handler is registered for System bus twice: once during
bus creation and once in vl.c. Remove the second qemu_register_reset()
invocation. Also while we are at it, remove incorrect check at
qbus_create_inplace(): when system bus is created, main_system_bus is
NULL (as it's not yet created, it cannot be set), so the check is just
wrong.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
 hw/qdev.c |    2 +-
 vl.c      |    3 ---
 2 files changed, 1 insertions(+), 4 deletions(-)

Comments

Aurelien Jarno April 1, 2011, 7:57 p.m. UTC | #1
On Mon, Feb 21, 2011 at 02:08:53AM +0300, Dmitry Eremin-Solenikov wrote:
> Currently reset handler is registered for System bus twice: once during
> bus creation and once in vl.c. Remove the second qemu_register_reset()
> invocation. Also while we are at it, remove incorrect check at
> qbus_create_inplace(): when system bus is created, main_system_bus is
> NULL (as it's not yet created, it cannot be set), so the check is just
> wrong.
> 
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
>  hw/qdev.c |    2 +-
>  vl.c      |    3 ---
>  2 files changed, 1 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/qdev.c b/hw/qdev.c
> index 1aa1ea0..0a3c8ce 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -762,7 +762,7 @@ void qbus_create_inplace(BusState *bus, BusInfo *info,
>      if (parent) {
>          QLIST_INSERT_HEAD(&parent->child_bus, bus, sibling);
>          parent->num_child_bus++;
> -    } else if (bus != main_system_bus) {
> +    } else {
>          /* TODO: once all bus devices are qdevified,
>             only reset handler for main_system_bus should be registered here. */
>          qemu_register_reset(qbus_reset_all_fn, bus);
> diff --git a/vl.c b/vl.c
> index 91be92e..24923db 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3120,9 +3120,6 @@ int main(int argc, char **argv, char **envp)
>          exit(1);
>      }
>  
> -    /* TODO: once all bus devices are qdevified, this should be done
> -     * when bus is created by qdev.c */
> -    qemu_register_reset(qbus_reset_all_fn, sysbus_get_default());
>      qemu_run_machine_init_done_notifiers();
>  
>      qemu_system_reset();

Have you verified that all bus devices have been qdevified since this
code has been added? I wouldn't bet it is the case.
diff mbox

Patch

diff --git a/hw/qdev.c b/hw/qdev.c
index 1aa1ea0..0a3c8ce 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -762,7 +762,7 @@  void qbus_create_inplace(BusState *bus, BusInfo *info,
     if (parent) {
         QLIST_INSERT_HEAD(&parent->child_bus, bus, sibling);
         parent->num_child_bus++;
-    } else if (bus != main_system_bus) {
+    } else {
         /* TODO: once all bus devices are qdevified,
            only reset handler for main_system_bus should be registered here. */
         qemu_register_reset(qbus_reset_all_fn, bus);
diff --git a/vl.c b/vl.c
index 91be92e..24923db 100644
--- a/vl.c
+++ b/vl.c
@@ -3120,9 +3120,6 @@  int main(int argc, char **argv, char **envp)
         exit(1);
     }
 
-    /* TODO: once all bus devices are qdevified, this should be done
-     * when bus is created by qdev.c */
-    qemu_register_reset(qbus_reset_all_fn, sysbus_get_default());
     qemu_run_machine_init_done_notifiers();
 
     qemu_system_reset();