On Fri, Mar 07, 2014 at 07:13:18PM +0100, Andreas Färber wrote: > Commit 1a37eca107cece3ed454bae29eef0bd1fac4a244 (qdev: add > "hotpluggable" property to Device) added a property "hotpluggable" to > each device, with its getter accessing parent_bus->allow_hotplug. > > Add a NULL check. > > Cc: Igor Mammedov <imamm...@redhat.com> > Signed-off-by: Andreas Färber <afaer...@suse.de>
Fair enough but I'm guessing we should assume devices without a parent are not hotpluggable, should we not? Without a bus what handles hotplug? > --- > hw/core/qdev.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/hw/core/qdev.c b/hw/core/qdev.c > index 749c83a..cb07863 100644 > --- a/hw/core/qdev.c > +++ b/hw/core/qdev.c > @@ -735,7 +735,8 @@ static bool device_get_hotpluggable(Object *obj, Error > **err) > DeviceClass *dc = DEVICE_GET_CLASS(obj); > DeviceState *dev = DEVICE(obj); > > - return dc->hotpluggable && dev->parent_bus->allow_hotplug; > + return dc->hotpluggable && (dev->parent_bus == NULL || > + dev->parent_bus->allow_hotplug); So maybe this should be: > return dc->hotpluggable && dev->parent_bus && > dev->parent_bus->allow_hotplug; ? > } > > static void device_initfn(Object *obj) > -- > 1.8.4.5