qdev: Fix qdev_try_create() semantics
authorAndreas Färber <afaerber@suse.de>
Fri, 17 Feb 2012 01:47:44 +0000 (02:47 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 17 Feb 2012 15:58:21 +0000 (09:58 -0600)
commit4ed658ca925249021789d6a51fd6f99f68213f28
tree44158198e9a6ed5dcc15a36fc984ef3c5f35534b
parent438e1c79f196f0bc9411ef8183f9906e0efbd578
qdev: Fix qdev_try_create() semantics

Since QOM'ification, qdev_try_create() uses object_new() internally,
which asserts "type != NULL" when the type is not registered.
This was revealed by the combination of kvmclock's kvm_enabled() check
and early QOM type registration.

Check whether the class exists before calling object_new(), so that
the caller (e.g., qdev_create) can fail gracefully, telling us which
device could not be created.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Cc: Anthony Liguori <aliguori@codemonkey.ws>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/qdev.c