* [PATCH v2 0/7] hw/xen: Simplify legacy backends handling
@ 2024-05-10 10:49 Philippe Mathieu-Daudé
2024-05-10 10:49 ` [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h' Philippe Mathieu-Daudé
` (8 more replies)
0 siblings, 9 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann,
Philippe =?unknown-8bit?q?Mathieu-Daud=C3=A9?=
Respin of Paolo's Xen patches from
https://lore.kernel.org/qemu-devel/20240509170044.190795-1-pbonzini@redhat.com/
rebased on one of my cleanup branches making backend
structures const. Treat xenfb as other backends.
Paolo Bonzini (2):
hw/xen: initialize legacy backends from xen_bus_init()
hw/xen: register legacy backends via xen_backend_init
Philippe Mathieu-Daudé (5):
hw/xen: Remove declarations left over in 'xen-legacy-backend.h'
hw/xen: Constify XenLegacyDevice::XenDevOps
hw/xen: Constify xenstore_be::XenDevOps
hw/xen: Make XenDevOps structures const
hw/xen: Register framebuffer backend via xen_backend_init()
include/hw/xen/xen-legacy-backend.h | 15 +--------------
include/hw/xen/xen_pvdev.h | 3 +--
hw/9pfs/xen-9p-backend.c | 8 +++++++-
hw/display/xenfb.c | 15 +++++++++++++--
hw/i386/pc.c | 1 -
hw/usb/xen-usb.c | 14 ++++----------
hw/xen/xen-bus.c | 4 ++++
hw/xen/xen-hvm-common.c | 2 --
hw/xen/xen-legacy-backend.c | 24 ++++--------------------
hw/xenpv/xen_machine_pv.c | 7 +------
10 files changed, 35 insertions(+), 58 deletions(-)
--
2.41.0
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h'
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-31 9:08 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 2/7] hw/xen: Constify XenLegacyDevice::XenDevOps Philippe Mathieu-Daudé
` (7 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
'xen_blkdev_ops' was removed in commit 19f87870ba ("xen: remove
the legacy 'xen_disk' backend"), 'xen_netdev_ops' in commit
25967ff69f ("hw/xen: update Xen PV NIC to XenDevice model") and
'xen_console_ops' in commit 9b77374690 ("hw/xen: update Xen
console to XenDevice model"). Remove them.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/xen/xen-legacy-backend.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h
index 2cca174778..eb22633caa 100644
--- a/include/hw/xen/xen-legacy-backend.h
+++ b/include/hw/xen/xen-legacy-backend.h
@@ -67,14 +67,11 @@ static inline void xen_be_unmap_grant_ref(struct XenLegacyDevice *xendev,
}
/* actual backend drivers */
-extern struct XenDevOps xen_console_ops; /* xen_console.c */
extern struct XenDevOps xen_kbdmouse_ops; /* xen_framebuffer.c */
extern struct XenDevOps xen_framebuffer_ops; /* xen_framebuffer.c */
-extern struct XenDevOps xen_blkdev_ops; /* xen_disk.c */
#ifdef CONFIG_VIRTFS
extern struct XenDevOps xen_9pfs_ops; /* xen-9p-backend.c */
#endif
-extern struct XenDevOps xen_netdev_ops; /* xen_nic.c */
#ifdef CONFIG_USB_LIBUSB
extern struct XenDevOps xen_usb_ops; /* xen-usb.c */
#endif
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 2/7] hw/xen: Constify XenLegacyDevice::XenDevOps
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
2024-05-10 10:49 ` [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h' Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-31 9:09 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 3/7] hw/xen: Constify xenstore_be::XenDevOps Philippe Mathieu-Daudé
` (6 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
XenDevOps @ops is not updated, mark it const.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/xen/xen_pvdev.h | 2 +-
hw/xen/xen-legacy-backend.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/hw/xen/xen_pvdev.h b/include/hw/xen/xen_pvdev.h
index ddad4b9f36..fd9a33e6ab 100644
--- a/include/hw/xen/xen_pvdev.h
+++ b/include/hw/xen/xen_pvdev.h
@@ -53,7 +53,7 @@ struct XenLegacyDevice {
xenevtchn_handle *evtchndev;
xengnttab_handle *gnttabdev;
- struct XenDevOps *ops;
+ const struct XenDevOps *ops;
QTAILQ_ENTRY(XenLegacyDevice) next;
};
diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c
index 124dd5f3d6..35f2b57560 100644
--- a/hw/xen/xen-legacy-backend.c
+++ b/hw/xen/xen-legacy-backend.c
@@ -170,7 +170,7 @@ int xen_be_copy_grant_refs(struct XenLegacyDevice *xendev,
*/
static struct XenLegacyDevice *xen_be_get_xendev(const char *type, int dom,
int dev,
- struct XenDevOps *ops)
+ const struct XenDevOps *ops)
{
struct XenLegacyDevice *xendev;
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 3/7] hw/xen: Constify xenstore_be::XenDevOps
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
2024-05-10 10:49 ` [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h' Philippe Mathieu-Daudé
2024-05-10 10:49 ` [PATCH v2 2/7] hw/xen: Constify XenLegacyDevice::XenDevOps Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-31 9:10 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 4/7] hw/xen: Make XenDevOps structures const Philippe Mathieu-Daudé
` (5 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
XenDevOps @ops is not updated, mark it const.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/xen/xen-legacy-backend.h | 2 +-
hw/xen/xen-legacy-backend.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h
index eb22633caa..2b2e43c7e7 100644
--- a/include/hw/xen/xen-legacy-backend.h
+++ b/include/hw/xen/xen-legacy-backend.h
@@ -40,7 +40,7 @@ void xen_be_check_state(struct XenLegacyDevice *xendev);
/* xen backend driver bits */
void xen_be_init(void);
-int xen_be_register(const char *type, struct XenDevOps *ops);
+int xen_be_register(const char *type, const struct XenDevOps *ops);
int xen_be_set_state(struct XenLegacyDevice *xendev, enum xenbus_state state);
int xen_be_bind_evtchn(struct XenLegacyDevice *xendev);
void xen_be_set_max_grant_refs(struct XenLegacyDevice *xendev,
diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c
index 35f2b57560..4dc3a561cf 100644
--- a/hw/xen/xen-legacy-backend.c
+++ b/hw/xen/xen-legacy-backend.c
@@ -520,7 +520,7 @@ void xen_be_check_state(struct XenLegacyDevice *xendev)
struct xenstore_be {
const char *type;
int dom;
- struct XenDevOps *ops;
+ const struct XenDevOps *ops;
};
static void xenstore_update_be(void *opaque, const char *watch)
@@ -557,7 +557,7 @@ static void xenstore_update_be(void *opaque, const char *watch)
}
}
-static int xenstore_scan(const char *type, int dom, struct XenDevOps *ops)
+static int xenstore_scan(const char *type, int dom, const struct XenDevOps *ops)
{
struct XenLegacyDevice *xendev;
char path[XEN_BUFSIZE];
@@ -632,7 +632,7 @@ void xen_be_init(void)
#endif
}
-int xen_be_register(const char *type, struct XenDevOps *ops)
+int xen_be_register(const char *type, const struct XenDevOps *ops)
{
char path[50];
int rc;
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 4/7] hw/xen: Make XenDevOps structures const
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2024-05-10 10:49 ` [PATCH v2 3/7] hw/xen: Constify xenstore_be::XenDevOps Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-31 9:52 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 5/7] hw/xen: initialize legacy backends from xen_bus_init() Philippe Mathieu-Daudé
` (4 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
Keep XenDevOps structures in .rodata.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/xen/xen-legacy-backend.h | 8 ++++----
hw/9pfs/xen-9p-backend.c | 2 +-
hw/display/xenfb.c | 4 ++--
hw/usb/xen-usb.c | 4 ++--
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h
index 2b2e43c7e7..cfa43a984a 100644
--- a/include/hw/xen/xen-legacy-backend.h
+++ b/include/hw/xen/xen-legacy-backend.h
@@ -67,13 +67,13 @@ static inline void xen_be_unmap_grant_ref(struct XenLegacyDevice *xendev,
}
/* actual backend drivers */
-extern struct XenDevOps xen_kbdmouse_ops; /* xen_framebuffer.c */
-extern struct XenDevOps xen_framebuffer_ops; /* xen_framebuffer.c */
+extern const struct XenDevOps xen_kbdmouse_ops; /* xen_framebuffer.c */
+extern const struct XenDevOps xen_framebuffer_ops; /* xen_framebuffer.c */
#ifdef CONFIG_VIRTFS
-extern struct XenDevOps xen_9pfs_ops; /* xen-9p-backend.c */
+extern const struct XenDevOps xen_9pfs_ops; /* xen-9p-backend.c */
#endif
#ifdef CONFIG_USB_LIBUSB
-extern struct XenDevOps xen_usb_ops; /* xen-usb.c */
+extern const struct XenDevOps xen_usb_ops; /* xen-usb.c */
#endif
/* configuration (aka xenbus setup) */
diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c
index 4aa9c8c736..b1780eb819 100644
--- a/hw/9pfs/xen-9p-backend.c
+++ b/hw/9pfs/xen-9p-backend.c
@@ -513,7 +513,7 @@ static void xen_9pfs_alloc(struct XenLegacyDevice *xendev)
xenstore_write_be_int(xendev, "max-ring-page-order", MAX_RING_ORDER);
}
-struct XenDevOps xen_9pfs_ops = {
+const struct XenDevOps xen_9pfs_ops = {
.size = sizeof(Xen9pfsDev),
.flags = DEVOPS_FLAG_NEED_GNTDEV,
.alloc = xen_9pfs_alloc,
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index b2130a0d70..dd83d0f5a5 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -972,7 +972,7 @@ static void fb_event(struct XenLegacyDevice *xendev)
/* -------------------------------------------------------------------- */
-struct XenDevOps xen_kbdmouse_ops = {
+const struct XenDevOps xen_kbdmouse_ops = {
.size = sizeof(struct XenInput),
.init = input_init,
.initialise = input_initialise,
@@ -981,7 +981,7 @@ struct XenDevOps xen_kbdmouse_ops = {
.event = input_event,
};
-struct XenDevOps xen_framebuffer_ops = {
+const struct XenDevOps xen_framebuffer_ops = {
.size = sizeof(struct XenFB),
.init = fb_init,
.initialise = fb_initialise,
diff --git a/hw/usb/xen-usb.c b/hw/usb/xen-usb.c
index 09ec326aea..95a901e81f 100644
--- a/hw/usb/xen-usb.c
+++ b/hw/usb/xen-usb.c
@@ -1083,7 +1083,7 @@ static void usbback_event(struct XenLegacyDevice *xendev)
qemu_bh_schedule(usbif->bh);
}
-struct XenDevOps xen_usb_ops = {
+const struct XenDevOps xen_usb_ops = {
.size = sizeof(struct usbback_info),
.flags = DEVOPS_FLAG_NEED_GNTDEV,
.init = usbback_init,
@@ -1102,7 +1102,7 @@ static int usbback_not_supported(void)
return -EINVAL;
}
-struct XenDevOps xen_usb_ops = {
+const struct XenDevOps xen_usb_ops = {
.backend_register = usbback_not_supported,
};
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 5/7] hw/xen: initialize legacy backends from xen_bus_init()
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2024-05-10 10:49 ` [PATCH v2 4/7] hw/xen: Make XenDevOps structures const Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-31 9:56 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init Philippe Mathieu-Daudé
` (3 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
From: Paolo Bonzini <pbonzini@redhat.com>
Prepare for moving the calls to xen_be_register() under the
control of xen_bus_init(), using the normal xen_backend_init()
method that is used by the "modern" backends.
This requires the xenstore global variable to be initialized,
which is done by xen_be_init(). To ensure that everything is
ready at the time the xen_backend_init() functions are called,
remove the xen_be_init() function from all the boards and
place it directly in xen_bus_init().
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240509170044.190795-7-pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/i386/pc.c | 1 -
hw/xen/xen-bus.c | 4 ++++
hw/xen/xen-hvm-common.c | 2 --
hw/xenpv/xen_machine_pv.c | 5 +----
4 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 505ea750f4..19f21953b4 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1250,7 +1250,6 @@ void pc_basic_device_init(struct PCMachineState *pcms,
pci_create_simple(pcms->pcibus, -1, "xen-platform");
}
xen_bus_init();
- xen_be_init();
}
#endif
diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c
index fb82cc33e4..95b207ac8b 100644
--- a/hw/xen/xen-bus.c
+++ b/hw/xen/xen-bus.c
@@ -13,6 +13,7 @@
#include "hw/sysbus.h"
#include "hw/xen/xen.h"
#include "hw/xen/xen-backend.h"
+#include "hw/xen/xen-legacy-backend.h" /* xen_be_init() */
#include "hw/xen/xen-bus.h"
#include "hw/xen/xen-bus-helper.h"
#include "monitor/monitor.h"
@@ -329,6 +330,9 @@ static void xen_bus_realize(BusState *bus, Error **errp)
goto fail;
}
+ /* Initialize legacy backend core & drivers */
+ xen_be_init();
+
if (xs_node_scanf(xenbus->xsh, XBT_NULL, "", /* domain root node */
"domid", NULL, "%u", &domid) == 1) {
xenbus->backend_id = domid;
diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c
index 1627da7398..2d1b032121 100644
--- a/hw/xen/xen-hvm-common.c
+++ b/hw/xen/xen-hvm-common.c
@@ -872,8 +872,6 @@ void xen_register_ioreq(XenIOState *state, unsigned int max_cpus,
xen_bus_init();
- xen_be_init();
-
return;
err:
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
index 1130d1a147..b500ce0989 100644
--- a/hw/xenpv/xen_machine_pv.c
+++ b/hw/xenpv/xen_machine_pv.c
@@ -34,8 +34,7 @@ static void xen_init_pv(MachineState *machine)
{
setup_xen_backend_ops();
- /* Initialize backend core & drivers */
- xen_be_init();
+ xen_bus_init();
switch (xen_mode) {
case XEN_ATTACH:
@@ -60,8 +59,6 @@ static void xen_init_pv(MachineState *machine)
vga_interface_created = true;
}
- xen_bus_init();
-
/* config cleanup hook */
atexit(xen_config_cleanup);
}
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2024-05-10 10:49 ` [PATCH v2 5/7] hw/xen: initialize legacy backends from xen_bus_init() Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-10 10:52 ` Philippe Mathieu-Daudé
2024-05-31 9:57 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 7/7] hw/xen: Register framebuffer backend via xen_backend_init() Philippe Mathieu-Daudé
` (2 subsequent siblings)
8 siblings, 2 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
From: Paolo Bonzini <pbonzini@redhat.com>
It is okay to register legacy backends in the middle of xen_bus_init().
All that the registration does is record the existence of the backend
in xenstore.
This makes it possible to remove them from the build without introducing
undefined symbols in xen_be_init(). It also removes the need for the
backend_register callback, whose only purpose is to avoid registering
nonfunctional backends.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240509170044.190795-8-pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/xen/xen-legacy-backend.h | 11 ++---------
include/hw/xen/xen_pvdev.h | 1 -
hw/9pfs/xen-9p-backend.c | 8 +++++++-
hw/display/xenfb.c | 8 +++++++-
hw/usb/xen-usb.c | 14 ++++----------
hw/xen/xen-legacy-backend.c | 16 ----------------
6 files changed, 20 insertions(+), 38 deletions(-)
diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h
index cfa43a984a..e55a14057f 100644
--- a/include/hw/xen/xen-legacy-backend.h
+++ b/include/hw/xen/xen-legacy-backend.h
@@ -66,15 +66,8 @@ static inline void xen_be_unmap_grant_ref(struct XenLegacyDevice *xendev,
return xen_be_unmap_grant_refs(xendev, ptr, &ref, 1);
}
-/* actual backend drivers */
-extern const struct XenDevOps xen_kbdmouse_ops; /* xen_framebuffer.c */
-extern const struct XenDevOps xen_framebuffer_ops; /* xen_framebuffer.c */
-#ifdef CONFIG_VIRTFS
-extern const struct XenDevOps xen_9pfs_ops; /* xen-9p-backend.c */
-#endif
-#ifdef CONFIG_USB_LIBUSB
-extern const struct XenDevOps xen_usb_ops; /* xen-usb.c */
-#endif
+/* backend drivers not included in all machines */
+extern const struct XenDevOps xen_framebuffer_ops; /* xenfb.c */
/* configuration (aka xenbus setup) */
void xen_config_cleanup(void);
diff --git a/include/hw/xen/xen_pvdev.h b/include/hw/xen/xen_pvdev.h
index fd9a33e6ab..0c98444047 100644
--- a/include/hw/xen/xen_pvdev.h
+++ b/include/hw/xen/xen_pvdev.h
@@ -29,7 +29,6 @@ struct XenDevOps {
const char *node);
void (*frontend_changed)(struct XenLegacyDevice *xendev,
const char *node);
- int (*backend_register)(void);
};
struct XenLegacyDevice {
diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c
index b1780eb819..79359d911a 100644
--- a/hw/9pfs/xen-9p-backend.c
+++ b/hw/9pfs/xen-9p-backend.c
@@ -513,7 +513,7 @@ static void xen_9pfs_alloc(struct XenLegacyDevice *xendev)
xenstore_write_be_int(xendev, "max-ring-page-order", MAX_RING_ORDER);
}
-const struct XenDevOps xen_9pfs_ops = {
+static const struct XenDevOps xen_9pfs_ops = {
.size = sizeof(Xen9pfsDev),
.flags = DEVOPS_FLAG_NEED_GNTDEV,
.alloc = xen_9pfs_alloc,
@@ -522,3 +522,9 @@ const struct XenDevOps xen_9pfs_ops = {
.disconnect = xen_9pfs_disconnect,
.free = xen_9pfs_free,
};
+
+static void xen_9pfs_register_backend(void)
+{
+ xen_be_register("9pfs", &xen_9pfs_ops);
+}
+xen_backend_init(xen_9pfs_register_backend);
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index dd83d0f5a5..b6d370bdf6 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -972,7 +972,7 @@ static void fb_event(struct XenLegacyDevice *xendev)
/* -------------------------------------------------------------------- */
-const struct XenDevOps xen_kbdmouse_ops = {
+static const struct XenDevOps xen_kbdmouse_ops = {
.size = sizeof(struct XenInput),
.init = input_init,
.initialise = input_initialise,
@@ -995,3 +995,9 @@ static const GraphicHwOps xenfb_ops = {
.gfx_update = xenfb_update,
.ui_info = xenfb_ui_info,
};
+
+static void xen_vkbd_register_backend(void)
+{
+ xen_be_register("vkbd", &xen_kbdmouse_ops);
+}
+xen_backend_init(xen_vkbd_register_backend);
diff --git a/hw/usb/xen-usb.c b/hw/usb/xen-usb.c
index 95a901e81f..13901625c0 100644
--- a/hw/usb/xen-usb.c
+++ b/hw/usb/xen-usb.c
@@ -1083,7 +1083,7 @@ static void usbback_event(struct XenLegacyDevice *xendev)
qemu_bh_schedule(usbif->bh);
}
-const struct XenDevOps xen_usb_ops = {
+static const struct XenDevOps xen_usb_ops = {
.size = sizeof(struct usbback_info),
.flags = DEVOPS_FLAG_NEED_GNTDEV,
.init = usbback_init,
@@ -1095,15 +1095,9 @@ const struct XenDevOps xen_usb_ops = {
.event = usbback_event,
};
-#else /* USBIF_SHORT_NOT_OK */
-
-static int usbback_not_supported(void)
+static void xen_usb_register_backend(void)
{
- return -EINVAL;
+ xen_be_register("qusb", &xen_usb_ops);
}
-
-const struct XenDevOps xen_usb_ops = {
- .backend_register = usbback_not_supported,
-};
-
+xen_backend_init(xen_usb_register_backend);
#endif
diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c
index 4dc3a561cf..5514184f9c 100644
--- a/hw/xen/xen-legacy-backend.c
+++ b/hw/xen/xen-legacy-backend.c
@@ -622,27 +622,11 @@ void xen_be_init(void)
qbus_set_bus_hotplug_handler(xen_sysbus);
xen_set_dynamic_sysbus();
-
- xen_be_register("vkbd", &xen_kbdmouse_ops);
-#ifdef CONFIG_VIRTFS
- xen_be_register("9pfs", &xen_9pfs_ops);
-#endif
-#ifdef CONFIG_USB_LIBUSB
- xen_be_register("qusb", &xen_usb_ops);
-#endif
}
int xen_be_register(const char *type, const struct XenDevOps *ops)
{
char path[50];
- int rc;
-
- if (ops->backend_register) {
- rc = ops->backend_register();
- if (rc) {
- return rc;
- }
- }
snprintf(path, sizeof(path), "device-model/%u/backends/%s", xen_domid,
type);
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 7/7] hw/xen: Register framebuffer backend via xen_backend_init()
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2024-05-10 10:49 ` [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init Philippe Mathieu-Daudé
@ 2024-05-10 10:49 ` Philippe Mathieu-Daudé
2024-05-31 9:59 ` Paul Durrant
2024-05-29 4:51 ` [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
2024-06-03 11:48 ` Philippe Mathieu-Daudé
8 siblings, 1 reply; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:49 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann, Philippe Mathieu-Daudé
Align the framebuffer backend with the other legacy ones,
register it via xen_backend_init() when '-vga xenfb' is
used. It is safe because MODULE_INIT_XEN_BACKEND is called
in xen_bus_realize(), long after CLI processing initialized
the vga_interface_type variable.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/xen/xen-legacy-backend.h | 3 ---
hw/display/xenfb.c | 9 +++++++--
hw/xenpv/xen_machine_pv.c | 2 --
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h
index e55a14057f..943732b8d1 100644
--- a/include/hw/xen/xen-legacy-backend.h
+++ b/include/hw/xen/xen-legacy-backend.h
@@ -66,9 +66,6 @@ static inline void xen_be_unmap_grant_ref(struct XenLegacyDevice *xendev,
return xen_be_unmap_grant_refs(xendev, ptr, &ref, 1);
}
-/* backend drivers not included in all machines */
-extern const struct XenDevOps xen_framebuffer_ops; /* xenfb.c */
-
/* configuration (aka xenbus setup) */
void xen_config_cleanup(void);
int xen_config_dev_vfb(int vdev, const char *type);
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index b6d370bdf6..ff442ced1a 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -29,6 +29,7 @@
#include "ui/input.h"
#include "ui/console.h"
+#include "sysemu/sysemu.h"
#include "hw/xen/xen-legacy-backend.h"
#include "hw/xen/interface/io/fbif.h"
@@ -996,8 +997,12 @@ static const GraphicHwOps xenfb_ops = {
.ui_info = xenfb_ui_info,
};
-static void xen_vkbd_register_backend(void)
+static void xen_ui_register_backend(void)
{
xen_be_register("vkbd", &xen_kbdmouse_ops);
+
+ if (vga_interface_type == VGA_XENFB) {
+ xen_be_register("vfb", &xen_framebuffer_ops);
+ }
}
-xen_backend_init(xen_vkbd_register_backend);
+xen_backend_init(xen_ui_register_backend);
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
index b500ce0989..24395f42cb 100644
--- a/hw/xenpv/xen_machine_pv.c
+++ b/hw/xenpv/xen_machine_pv.c
@@ -50,8 +50,6 @@ static void xen_init_pv(MachineState *machine)
break;
}
- xen_be_register("vfb", &xen_framebuffer_ops);
-
/* configure framebuffer */
if (vga_interface_type == VGA_XENFB) {
xen_config_dev_vfb(0, "vnc");
--
2.41.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init
2024-05-10 10:49 ` [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init Philippe Mathieu-Daudé
@ 2024-05-10 10:52 ` Philippe Mathieu-Daudé
2024-05-31 9:57 ` Paul Durrant
1 sibling, 0 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-10 10:52 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann
On 10/5/24 12:49, Philippe Mathieu-Daudé wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
>
> It is okay to register legacy backends in the middle of xen_bus_init().
> All that the registration does is record the existence of the backend
> in xenstore.
>
> This makes it possible to remove them from the build without introducing
> undefined symbols in xen_be_init(). It also removes the need for the
> backend_register callback, whose only purpose is to avoid registering
> nonfunctional backends.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Message-ID: <20240509170044.190795-8-pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen-legacy-backend.h | 11 ++---------
> include/hw/xen/xen_pvdev.h | 1 -
> hw/9pfs/xen-9p-backend.c | 8 +++++++-
> hw/display/xenfb.c | 8 +++++++-
> hw/usb/xen-usb.c | 14 ++++----------
> hw/xen/xen-legacy-backend.c | 16 ----------------
> 6 files changed, 20 insertions(+), 38 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 0/7] hw/xen: Simplify legacy backends handling
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
` (6 preceding siblings ...)
2024-05-10 10:49 ` [PATCH v2 7/7] hw/xen: Register framebuffer backend via xen_backend_init() Philippe Mathieu-Daudé
@ 2024-05-29 4:51 ` Philippe Mathieu-Daudé
2024-06-03 11:48 ` Philippe Mathieu-Daudé
8 siblings, 0 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-29 4:51 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Paul Durrant, Richard Henderson, xen-devel,
Stefano Stabellini, Michael S. Tsirkin, Eduardo Habkost,
Marcel Apfelbaum, Gerd Hoffmann
ping?
On 10/5/24 12:49, Philippe Mathieu-Daudé wrote:
> Respin of Paolo's Xen patches from
> https://lore.kernel.org/qemu-devel/20240509170044.190795-1-pbonzini@redhat.com/
> rebased on one of my cleanup branches making backend
> structures const. Treat xenfb as other backends.
>
> Paolo Bonzini (2):
> hw/xen: initialize legacy backends from xen_bus_init()
> hw/xen: register legacy backends via xen_backend_init
>
> Philippe Mathieu-Daudé (5):
> hw/xen: Remove declarations left over in 'xen-legacy-backend.h'
> hw/xen: Constify XenLegacyDevice::XenDevOps
> hw/xen: Constify xenstore_be::XenDevOps
> hw/xen: Make XenDevOps structures const
> hw/xen: Register framebuffer backend via xen_backend_init()
>
> include/hw/xen/xen-legacy-backend.h | 15 +--------------
> include/hw/xen/xen_pvdev.h | 3 +--
> hw/9pfs/xen-9p-backend.c | 8 +++++++-
> hw/display/xenfb.c | 15 +++++++++++++--
> hw/i386/pc.c | 1 -
> hw/usb/xen-usb.c | 14 ++++----------
> hw/xen/xen-bus.c | 4 ++++
> hw/xen/xen-hvm-common.c | 2 --
> hw/xen/xen-legacy-backend.c | 24 ++++--------------------
> hw/xenpv/xen_machine_pv.c | 7 +------
> 10 files changed, 35 insertions(+), 58 deletions(-)
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h'
2024-05-10 10:49 ` [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h' Philippe Mathieu-Daudé
@ 2024-05-31 9:08 ` Paul Durrant
0 siblings, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:08 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> 'xen_blkdev_ops' was removed in commit 19f87870ba ("xen: remove
> the legacy 'xen_disk' backend"), 'xen_netdev_ops' in commit
> 25967ff69f ("hw/xen: update Xen PV NIC to XenDevice model") and
> 'xen_console_ops' in commit 9b77374690 ("hw/xen: update Xen
> console to XenDevice model"). Remove them.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen-legacy-backend.h | 3 ---
> 1 file changed, 3 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 2/7] hw/xen: Constify XenLegacyDevice::XenDevOps
2024-05-10 10:49 ` [PATCH v2 2/7] hw/xen: Constify XenLegacyDevice::XenDevOps Philippe Mathieu-Daudé
@ 2024-05-31 9:09 ` Paul Durrant
0 siblings, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:09 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> XenDevOps @ops is not updated, mark it const.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen_pvdev.h | 2 +-
> hw/xen/xen-legacy-backend.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 3/7] hw/xen: Constify xenstore_be::XenDevOps
2024-05-10 10:49 ` [PATCH v2 3/7] hw/xen: Constify xenstore_be::XenDevOps Philippe Mathieu-Daudé
@ 2024-05-31 9:10 ` Paul Durrant
0 siblings, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:10 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> XenDevOps @ops is not updated, mark it const.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen-legacy-backend.h | 2 +-
> hw/xen/xen-legacy-backend.c | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 4/7] hw/xen: Make XenDevOps structures const
2024-05-10 10:49 ` [PATCH v2 4/7] hw/xen: Make XenDevOps structures const Philippe Mathieu-Daudé
@ 2024-05-31 9:52 ` Paul Durrant
0 siblings, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:52 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> Keep XenDevOps structures in .rodata.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen-legacy-backend.h | 8 ++++----
> hw/9pfs/xen-9p-backend.c | 2 +-
> hw/display/xenfb.c | 4 ++--
> hw/usb/xen-usb.c | 4 ++--
> 4 files changed, 9 insertions(+), 9 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 5/7] hw/xen: initialize legacy backends from xen_bus_init()
2024-05-10 10:49 ` [PATCH v2 5/7] hw/xen: initialize legacy backends from xen_bus_init() Philippe Mathieu-Daudé
@ 2024-05-31 9:56 ` Paul Durrant
0 siblings, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:56 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
>
> Prepare for moving the calls to xen_be_register() under the
> control of xen_bus_init(), using the normal xen_backend_init()
> method that is used by the "modern" backends.
>
> This requires the xenstore global variable to be initialized,
> which is done by xen_be_init(). To ensure that everything is
> ready at the time the xen_backend_init() functions are called,
> remove the xen_be_init() function from all the boards and
> place it directly in xen_bus_init().
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Message-ID: <20240509170044.190795-7-pbonzini@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/i386/pc.c | 1 -
> hw/xen/xen-bus.c | 4 ++++
> hw/xen/xen-hvm-common.c | 2 --
> hw/xenpv/xen_machine_pv.c | 5 +----
> 4 files changed, 5 insertions(+), 7 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init
2024-05-10 10:49 ` [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init Philippe Mathieu-Daudé
2024-05-10 10:52 ` Philippe Mathieu-Daudé
@ 2024-05-31 9:57 ` Paul Durrant
1 sibling, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:57 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> From: Paolo Bonzini <pbonzini@redhat.com>
>
> It is okay to register legacy backends in the middle of xen_bus_init().
> All that the registration does is record the existence of the backend
> in xenstore.
>
> This makes it possible to remove them from the build without introducing
> undefined symbols in xen_be_init(). It also removes the need for the
> backend_register callback, whose only purpose is to avoid registering
> nonfunctional backends.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Message-ID: <20240509170044.190795-8-pbonzini@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen-legacy-backend.h | 11 ++---------
> include/hw/xen/xen_pvdev.h | 1 -
> hw/9pfs/xen-9p-backend.c | 8 +++++++-
> hw/display/xenfb.c | 8 +++++++-
> hw/usb/xen-usb.c | 14 ++++----------
> hw/xen/xen-legacy-backend.c | 16 ----------------
> 6 files changed, 20 insertions(+), 38 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 7/7] hw/xen: Register framebuffer backend via xen_backend_init()
2024-05-10 10:49 ` [PATCH v2 7/7] hw/xen: Register framebuffer backend via xen_backend_init() Philippe Mathieu-Daudé
@ 2024-05-31 9:59 ` Paul Durrant
0 siblings, 0 replies; 18+ messages in thread
From: Paul Durrant @ 2024-05-31 9:59 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Paolo Bonzini
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/05/2024 11:49, Philippe Mathieu-Daudé wrote:
> Align the framebuffer backend with the other legacy ones,
> register it via xen_backend_init() when '-vga xenfb' is
> used. It is safe because MODULE_INIT_XEN_BACKEND is called
> in xen_bus_realize(), long after CLI processing initialized
> the vga_interface_type variable.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/hw/xen/xen-legacy-backend.h | 3 ---
> hw/display/xenfb.c | 9 +++++++--
> hw/xenpv/xen_machine_pv.c | 2 --
> 3 files changed, 7 insertions(+), 7 deletions(-)
>
Reviewed-by: Paul Durrant <paul@xen.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 0/7] hw/xen: Simplify legacy backends handling
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
` (7 preceding siblings ...)
2024-05-29 4:51 ` [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
@ 2024-06-03 11:48 ` Philippe Mathieu-Daudé
8 siblings, 0 replies; 18+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-06-03 11:48 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Paul Durrant
Cc: Anthony PERARD, Richard Henderson, xen-devel, Stefano Stabellini,
Michael S. Tsirkin, Eduardo Habkost, Marcel Apfelbaum,
Gerd Hoffmann
On 10/5/24 12:49, Philippe Mathieu-Daudé wrote:
> Respin of Paolo's Xen patches from
> https://lore.kernel.org/qemu-devel/20240509170044.190795-1-pbonzini@redhat.com/
> rebased on one of my cleanup branches making backend
> structures const. Treat xenfb as other backends.
>
> Paolo Bonzini (2):
> hw/xen: initialize legacy backends from xen_bus_init()
> hw/xen: register legacy backends via xen_backend_init
>
> Philippe Mathieu-Daudé (5):
> hw/xen: Remove declarations left over in 'xen-legacy-backend.h'
> hw/xen: Constify XenLegacyDevice::XenDevOps
> hw/xen: Constify xenstore_be::XenDevOps
> hw/xen: Make XenDevOps structures const
> hw/xen: Register framebuffer backend via xen_backend_init()
Thanks Paul for the review, unfortunately Paulo missed this and
merged v1 as single commit 88f5ed7017 ("xen: register legacy
backends via xen_backend_init") :(
Regards,
Phil.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2024-06-03 11:49 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-10 10:49 [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
2024-05-10 10:49 ` [PATCH v2 1/7] hw/xen: Remove declarations left over in 'xen-legacy-backend.h' Philippe Mathieu-Daudé
2024-05-31 9:08 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 2/7] hw/xen: Constify XenLegacyDevice::XenDevOps Philippe Mathieu-Daudé
2024-05-31 9:09 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 3/7] hw/xen: Constify xenstore_be::XenDevOps Philippe Mathieu-Daudé
2024-05-31 9:10 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 4/7] hw/xen: Make XenDevOps structures const Philippe Mathieu-Daudé
2024-05-31 9:52 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 5/7] hw/xen: initialize legacy backends from xen_bus_init() Philippe Mathieu-Daudé
2024-05-31 9:56 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 6/7] hw/xen: register legacy backends via xen_backend_init Philippe Mathieu-Daudé
2024-05-10 10:52 ` Philippe Mathieu-Daudé
2024-05-31 9:57 ` Paul Durrant
2024-05-10 10:49 ` [PATCH v2 7/7] hw/xen: Register framebuffer backend via xen_backend_init() Philippe Mathieu-Daudé
2024-05-31 9:59 ` Paul Durrant
2024-05-29 4:51 ` [PATCH v2 0/7] hw/xen: Simplify legacy backends handling Philippe Mathieu-Daudé
2024-06-03 11:48 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).