75a96ee029
- Remove deprecated patch "work-around-SA_RESTART-race" (boo#982208) - Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6 * Patches dropped: 0002-XXX-work-around-SA_RESTART-race-wit.patch 0003-qemu-0.9.0.cvs-binfmt.patch 0004-qemu-cvs-alsa_bitfield.patch 0005-qemu-cvs-alsa_ioctl.patch 0006-qemu-cvs-alsa_mmap.patch 0007-qemu-cvs-gettimeofday.patch 0008-qemu-cvs-ioctl_debug.patch 0009-qemu-cvs-ioctl_nodirection.patch 0010-block-vmdk-Support-creation-of-SCSI.patch 0011-linux-user-add-binfmt-wrapper-for-a.patch 0012-PPC-KVM-Disable-mmu-notifier-check.patch 0013-linux-user-fix-segfault-deadlock.patch 0014-linux-user-binfmt-support-host-bina.patch 0015-linux-user-Ignore-broken-loop-ioctl.patch 0016-linux-user-lock-tcg.patch 0017-linux-user-Run-multi-threaded-code-.patch 0018-linux-user-lock-tb-flushing-too.patch 0019-linux-user-Fake-proc-cpuinfo.patch 0020-linux-user-implement-FS_IOC_GETFLAG.patch 0021-linux-user-implement-FS_IOC_SETFLAG.patch 0022-linux-user-XXX-disable-fiemap.patch 0023-slirp-nooutgoing.patch 0024-vnc-password-file-and-incoming-conn.patch 0025-linux-user-add-more-blk-ioctls.patch 0026-linux-user-use-target_ulong.patch 0027-block-Add-support-for-DictZip-enabl.patch 0028-block-Add-tar-container-format.patch OBS-URL: https://build.opensuse.org/request/show/408549 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=305
105 lines
3.2 KiB
Diff
105 lines
3.2 KiB
Diff
From d7476f32d84a256e683d20db0cdd0d3676fa2a62 Mon Sep 17 00:00:00 2001
|
|
From: Juergen Gross <jgross@suse.com>
|
|
Date: Thu, 12 May 2016 16:13:39 +0200
|
|
Subject: [PATCH] xen: introduce dummy system device
|
|
|
|
Introduce a new dummy system device serving as parent for virtual
|
|
buses. This will enable new pv backends to introduce virtual buses
|
|
which are removable again opposed to system buses which are meant
|
|
to stay once added.
|
|
|
|
Signed-off-by: Juergen Gross <jgross@suse.com>
|
|
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
|
|
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
|
|
Message-id: 1463062421-613-2-git-send-email-jgross@suse.com
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
(cherry picked from commit 9432e53a5bc88681b2d3aec4dac9db07c5476d1b)
|
|
[BR: FATE#316612]
|
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
|
---
|
|
hw/xenpv/xen_machine_pv.c | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
include/hw/xen/xen_backend.h | 1 +
|
|
2 files changed, 41 insertions(+)
|
|
|
|
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
|
|
index fc13535..48d5bc6 100644
|
|
--- a/hw/xenpv/xen_machine_pv.c
|
|
+++ b/hw/xenpv/xen_machine_pv.c
|
|
@@ -25,10 +25,15 @@
|
|
#include "qemu/osdep.h"
|
|
#include "hw/hw.h"
|
|
#include "hw/boards.h"
|
|
+#include "hw/sysbus.h"
|
|
#include "hw/xen/xen_backend.h"
|
|
#include "xen_domainbuild.h"
|
|
#include "sysemu/block-backend.h"
|
|
|
|
+#define TYPE_XENSYSDEV "xensysdev"
|
|
+
|
|
+DeviceState *xen_sysdev;
|
|
+
|
|
static void xen_init_pv(MachineState *machine)
|
|
{
|
|
DriveInfo *dinfo;
|
|
@@ -67,6 +72,9 @@ static void xen_init_pv(MachineState *machine)
|
|
break;
|
|
}
|
|
|
|
+ xen_sysdev = qdev_create(NULL, TYPE_XENSYSDEV);
|
|
+ qdev_init_nofail(xen_sysdev);
|
|
+
|
|
xen_be_register("console", &xen_console_ops);
|
|
xen_be_register("vkbd", &xen_kbdmouse_ops);
|
|
xen_be_register("vfb", &xen_framebuffer_ops);
|
|
@@ -101,6 +109,38 @@ static void xen_init_pv(MachineState *machine)
|
|
xen_init_display(xen_domid);
|
|
}
|
|
|
|
+static int xen_sysdev_init(SysBusDevice *dev)
|
|
+{
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static Property xen_sysdev_properties[] = {
|
|
+ {/* end of property list */},
|
|
+};
|
|
+
|
|
+static void xen_sysdev_class_init(ObjectClass *klass, void *data)
|
|
+{
|
|
+ DeviceClass *dc = DEVICE_CLASS(klass);
|
|
+ SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
|
|
+
|
|
+ k->init = xen_sysdev_init;
|
|
+ dc->props = xen_sysdev_properties;
|
|
+}
|
|
+
|
|
+static const TypeInfo xensysdev_info = {
|
|
+ .name = TYPE_XENSYSDEV,
|
|
+ .parent = TYPE_SYS_BUS_DEVICE,
|
|
+ .instance_size = sizeof(SysBusDevice),
|
|
+ .class_init = xen_sysdev_class_init,
|
|
+};
|
|
+
|
|
+static void xenpv_register_types(void)
|
|
+{
|
|
+ type_register_static(&xensysdev_info);
|
|
+}
|
|
+
|
|
+type_init(xenpv_register_types);
|
|
+
|
|
static void xenpv_machine_init(MachineClass *mc)
|
|
{
|
|
mc->desc = "Xen Para-virtualized PC";
|
|
diff --git a/include/hw/xen/xen_backend.h b/include/hw/xen/xen_backend.h
|
|
index c839eeb..b4b4ff0 100644
|
|
--- a/include/hw/xen/xen_backend.h
|
|
+++ b/include/hw/xen/xen_backend.h
|
|
@@ -60,6 +60,7 @@ extern xc_interface *xen_xc;
|
|
extern xenforeignmemory_handle *xen_fmem;
|
|
extern struct xs_handle *xenstore;
|
|
extern const char *xen_protocol;
|
|
+extern DeviceState *xen_sysdev;
|
|
|
|
/* xenstore helper functions */
|
|
int xenstore_write_str(const char *base, const char *node, const char *val);
|