[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [libvirt] [PATCH RESEND] qdev: Make "hotplugged" proper
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [libvirt] [PATCH RESEND] qdev: Make "hotplugged" property read-only |
Date: |
Thu, 23 Feb 2017 01:05:19 -0300 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Wed, Feb 22, 2017 at 04:43:37PM -0600, Eric Blake wrote:
> On 02/22/2017 01:26 PM, Eduardo Habkost wrote:
> > The "hotplugged" property is user visible, but it was never meant
> > to be set by the user. There are probably multiple ways to break
> > or crash device code by overriding the property. For example, we
> > recently fixed a crash in rtc_set_memory() related to the
> > property (commit 26ef65beab852caf2b1ef4976e3473f2d525164d).
> >
> > There has been some discussion about making management software
> > use "hotplugged=on" on migration, to indicate devices that were
> > hotplugged in the migration source. There were other suggestions
> > to address this, like including the "hotplugged" field in the
> > migration stream instead of requiring it to be set propertly.
>
> s/propertly/properly/
Actually, I think I meant "requiring it to be set explicitly". I
will fix this in my branch. Thanks!
>
> >
> > Whatever solution we choose in the future, this patch disables
> > setting "hotplugged" explicitly in the command-line by now,
> > because the ability to set the property is unused, untested, and
> > undocumented.
> >
> > Signed-off-by: Eduardo Habkost <address@hidden>
> > ---
> > hw/core/qdev.c | 9 +--------
> > 1 file changed, 1 insertion(+), 8 deletions(-)
>
> Reviewed-by: Eric Blake <address@hidden>
Thanks!
>
> >
> > diff --git a/hw/core/qdev.c b/hw/core/qdev.c
> > index 06ba02e2a3..800c9ca23f 100644
> > --- a/hw/core/qdev.c
> > +++ b/hw/core/qdev.c
> > @@ -1016,13 +1016,6 @@ static bool device_get_hotplugged(Object *obj, Error
> > **err)
> > return dev->hotplugged;
> > }
> >
> > -static void device_set_hotplugged(Object *obj, bool value, Error **err)
> > -{
> > - DeviceState *dev = DEVICE(obj);
> > -
> > - dev->hotplugged = value;
> > -}
> > -
> > static void device_initfn(Object *obj)
> > {
> > DeviceState *dev = DEVICE(obj);
> > @@ -1042,7 +1035,7 @@ static void device_initfn(Object *obj)
> > object_property_add_bool(obj, "hotpluggable",
> > device_get_hotpluggable, NULL, NULL);
> > object_property_add_bool(obj, "hotplugged",
> > - device_get_hotplugged, device_set_hotplugged,
> > + device_get_hotplugged, NULL,
> > &error_abort);
> >
> > class = object_get_class(OBJECT(dev));
> >
>
> --
> Eric Blake eblake redhat com +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
--
Eduardo