qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState
Date: Thu, 22 Feb 2018 16:37:40 +0100
User-agent: NeoMutt/20171215

On Mon, Feb 19, 2018 at 12:14:55PM +0100, Gerd Hoffmann wrote:
> vfio display support wants disable hotplug for certain devices, because
> qemu doesn't support hotplugging display devices and qemu consoles.
> 
> Add a hotpluggable bool to DeviceState, initialize it from
> DeviceClass->hotpluggable, update device_get_hotpluggable accordingly.
> 
> Devices can flip the new variable from true to false if needed.

Alex wants an ack for this one.  Who maintains it these days?

MAINTAINERS doesn't list qdev.  For QOM which is closest probably
Andreas Färber is listed.  Havn't seen him on the list for a while
though.

Ok, lets try some usual suspects...
Markus? Eric? Paolo? Peter?  Any comments on this one?

thanks,
  Gerd

> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
>  include/hw/qdev-core.h | 1 +
>  hw/core/qdev.c         | 5 +++--
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
> index fc9d617a76..37d86f26e5 100644
> --- a/include/hw/qdev-core.h
> +++ b/include/hw/qdev-core.h
> @@ -154,6 +154,7 @@ struct DeviceState {
>      const char *id;
>      char *canonical_path;
>      bool realized;
> +    bool hotpluggable;
>      bool pending_deleted_event;
>      QemuOpts *opts;
>      int hotplugged;
> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
> index 7ed1f431f0..89e03c7b47 100644
> --- a/hw/core/qdev.c
> +++ b/hw/core/qdev.c
> @@ -946,8 +946,8 @@ static bool device_get_hotpluggable(Object *obj, Error 
> **errp)
>      DeviceClass *dc = DEVICE_GET_CLASS(obj);
>      DeviceState *dev = DEVICE(obj);
>  
> -    return dc->hotpluggable && (dev->parent_bus == NULL ||
> -                                qbus_is_hotpluggable(dev->parent_bus));
> +    return dc->hotpluggable && dev->hotpluggable &&
> +        (dev->parent_bus == NULL || qbus_is_hotpluggable(dev->parent_bus));
>  }
>  
>  static bool device_get_hotplugged(Object *obj, Error **err)
> @@ -988,6 +988,7 @@ static void device_initfn(Object *obj)
>          class = object_class_get_parent(class);
>      } while (class != object_class_by_name(TYPE_DEVICE));
>  
> +    dev->hotpluggable = DEVICE_CLASS(class)->hotpluggable;
>      object_property_add_link(OBJECT(dev), "parent_bus", TYPE_BUS,
>                               (Object **)&dev->parent_bus, NULL, 0,
>                               &error_abort);
> -- 
> 2.9.3
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]