qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Avoid segmentation fault for qdev device not found
@ 2011-05-12 12:55 Glauber Costa
  2011-05-13  8:41 ` Markus Armbruster
  0 siblings, 1 reply; 2+ messages in thread
From: Glauber Costa @ 2011-05-12 12:55 UTC (permalink / raw)
  To: kvm; +Cc: aliguori, mtosatti, qemu-devel, avi

qdev_try_create will cope well with a NULL bus, since it will assume
the main system bus by default. qdev_create, however, wants to print
a message, in which it instantiates the bus name. That simple and at
first inoffensive message will generate a segmentation found if the
reason for failure is a NULL bus.

I propose we avoid that - thus generating the normal hw_error by
always passing a valid bus to qdev_try_create - if none, be it the
main system bus.

The code for testing a NULL bus is not remove from qdev_try_create
because it is a externally visible function, and we want it to continue
working fine.

Signed-off-by: Glauber Costa <glommer@redhat.com>
---
 hw/qdev.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/hw/qdev.c b/hw/qdev.c
index 1aa1ea0..21ef075 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -108,6 +108,10 @@ DeviceState *qdev_create(BusState *bus, const char *name)
 {
     DeviceState *dev;
 
+    if (!bus) {
+        bus = sysbus_get_default();
+    }
+
     dev = qdev_try_create(bus, name);
     if (!dev) {
         hw_error("Unknown device '%s' for bus '%s'\n", name, bus->info->name);
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH] Avoid segmentation fault for qdev device not found
  2011-05-12 12:55 [Qemu-devel] [PATCH] Avoid segmentation fault for qdev device not found Glauber Costa
@ 2011-05-13  8:41 ` Markus Armbruster
  0 siblings, 0 replies; 2+ messages in thread
From: Markus Armbruster @ 2011-05-13  8:41 UTC (permalink / raw)
  To: Glauber Costa; +Cc: aliguori, mtosatti, qemu-devel, kvm, avi

Glauber Costa <glommer@redhat.com> writes:

> qdev_try_create will cope well with a NULL bus, since it will assume
> the main system bus by default. qdev_create, however, wants to print
> a message, in which it instantiates the bus name. That simple and at
> first inoffensive message will generate a segmentation found if the
> reason for failure is a NULL bus.
>
> I propose we avoid that - thus generating the normal hw_error by
> always passing a valid bus to qdev_try_create - if none, be it the
> main system bus.
>
> The code for testing a NULL bus is not remove from qdev_try_create
> because it is a externally visible function, and we want it to continue
> working fine.
>
> Signed-off-by: Glauber Costa <glommer@redhat.com>

"NULL means implicit main system bus" is too clever.  See also commit
ec990eb6.  Beyond the scope of your simple fix, so:

Reviewed-by: Markus Armbruster <armbru@redhat.com>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-05-13  8:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-12 12:55 [Qemu-devel] [PATCH] Avoid segmentation fault for qdev device not found Glauber Costa
2011-05-13  8:41 ` Markus Armbruster

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).