qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Isaku Yamahata <yamahata@valinux.co.jp>
To: Aurelien Jarno <aurelien@aurel32.net>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Register only one qbus_reset_all_fn() for system bus
Date: Sat, 2 Apr 2011 09:12:03 +0900	[thread overview]
Message-ID: <20110402001203.GA11748@valinux.co.jp> (raw)
In-Reply-To: <20110401195746.GB24630@volta.aurel32.net>

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

I think his analysis is valid. So how about the following patch.

>From ee27041a238d51247e30100d1909066978cd8858 Mon Sep 17 00:00:00 2001
Message-Id: <ee27041a238d51247e30100d1909066978cd8858.1301703026.git.yamahata@valinux.co.jp>
From: Isaku Yamahata <yamahata@valinux.co.jp>
Date: Sat, 2 Apr 2011 09:04:54 +0900
Subject: [PATCH] qdev: Register only one qbus_reset_all_fn() for system bus

This is the revised version of Dmitry's.
his report is as follows and this patch fixes it.
> 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.

the check bus == main_system_bus in qbus_create_inplace() was wrong
because sysbus_get_default() creates bus for main_system_bus and then
set main_system_bus to it.
So main_system_bus == NULL in qbus_create_inplace() when creating
main_system_bus. So this patch fixes the check whether creating
main_system_bus or not by seeing BusInfo.

Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
 hw/qdev.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/hw/qdev.c b/hw/qdev.c
index 1aa1ea0..659de23 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -762,7 +762,12 @@ 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 if (info != &system_bus_info) {
+        /* see if bus == main_system_bus
+         * Here we can't check bus == main_system_bus because
+         * main_system_bus == NULL here before setting it by
+         * sysbus_get_default()
+         */
         /* 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);
-- 
1.7.1.1



-- 
yamahata

  reply	other threads:[~2011-04-02  0:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-20 23:08 [Qemu-devel] [PATCH] Register only one qbus_reset_all_fn() for system bus Dmitry Eremin-Solenikov
2011-04-01 19:57 ` Aurelien Jarno
2011-04-02  0:12   ` Isaku Yamahata [this message]
2011-04-02 14:47     ` Dmitry Eremin-Solenikov
2011-04-03 10:26       ` Isaku Yamahata
2011-04-04 11:58         ` Dmitry Eremin-Solenikov
2011-04-04 13:54           ` Isaku Yamahata
  -- strict thread matches above, loose matches on Subject: below --
2011-03-10  8:53 Dmitry Eremin-Solenikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110402001203.GA11748@valinux.co.jp \
    --to=yamahata@valinux.co.jp \
    --cc=aurelien@aurel32.net \
    --cc=dbaryshkov@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).