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 <dbarysh...@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. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net