Message ID | 1298243333-23799-1-git-send-email-dbaryshkov@gmail.com |
---|---|
State | New |
Headers | show |
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 --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();
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(-)