[libvirt] [PATCH RESEND] qdev: Make "hotplugged" property read-only

Eric Blake eblake at redhat.com
Wed Feb 22 22:43:37 UTC 2017


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/

> 
> 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 <ehabkost at redhat.com>
> ---
>  hw/core/qdev.c | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)

Reviewed-by: Eric Blake <eblake at redhat.com>

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170222/5f7e1cb3/attachment-0001.sig>


More information about the libvir-list mailing list