[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState |
Date: |
Mon, 19 Feb 2018 12:14:55 +0100 |
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.
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
- [Qemu-devel] [PATCH v4 0/7] vfio: add display support, Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 5/7] vfio/common: cleanup in vfio_region_finalize, Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 2/7] standard-headers: add drm/drm_fourcc.h, Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 3/7] ui/pixman: add qemu_drm_format_to_pixman(), Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 6/7] vfio/display: core & wireup, Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 7/7] vfio/display: adding region support, Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 1/7] linux-headers: update to 4.16-rc1, Gerd Hoffmann, 2018/02/19
- [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState,
Gerd Hoffmann <=
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Gerd Hoffmann, 2018/02/22
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Peter Maydell, 2018/02/22
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Alex Williamson, 2018/02/22
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Peter Maydell, 2018/02/22
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Zhenyu Wang, 2018/02/22
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Gerd Hoffmann, 2018/02/23
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Alex Williamson, 2018/02/23
- Re: [Qemu-devel] [PATCH v4 4/7] qdev: add hotpluggable to DeviceState, Gerd Hoffmann, 2018/02/26
Re: [Qemu-devel] [PATCH v4 0/7] vfio: add display support, Alex Williamson, 2018/02/19