* [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci
@ 2018-11-26 19:59 Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits " Juan Quintela
` (17 more replies)
0 siblings, 18 replies; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Hi
V2:
- Rebase on top of master
Please review.
Later, Juan.
[v1]
>From previous verision (in the middle of make check tests):
- split also the bits of virtio-pci.h (mst suggestion)
- add gpu, crypt and gpg bits
- more cleanups
- fix all the copyrights (the ones not changed have been there
foverever)
- be consistent with naming, vhost-* or virtio-*
Please review, Juan.
Juan Quintela (16):
virtio: split vhost vsock bits from virtio-pci
virtio: split virtio input host bits from virtio-pci
virtio: split virtio input bits from virtio-pci
virtio: split virtio rng bits from virtio-pci
virtio: split virtio balloon bits from virtio-pci
virtio: split virtio 9p bits from virtio-pci
virtio: split vhost user blk bits from virtio-pci
virtio: split vhost user scsi bits from virtio-pci
virtio: split vhost scsi bits from virtio-pci
virtio: split virtio scsi bits from virtio-pci
virtio: split virtio blk bits rom virtio-pci
virtio: split virtio net bits rom virtio-pci
virtio: split virtio serial bits rom virtio-pci
virtio: split virtio gpu bits rom virtio-pci.h
virtio: split virtio crypto bits rom virtio-pci.h
virtio: virtio 9p really requires CONFIG_VIRTFS to work
default-configs/virtio.mak | 3 +-
hw/display/virtio-gpu-pci.c | 14 +
hw/display/virtio-vga.c | 1 +
hw/virtio/Makefile.objs | 14 +-
hw/virtio/vhost-scsi-pci.c | 95 ++++
hw/virtio/vhost-user-blk-pci.c | 101 ++++
hw/virtio/vhost-user-scsi-pci.c | 101 ++++
hw/virtio/vhost-vsock-pci.c | 82 ++++
hw/virtio/virtio-9p-pci.c | 86 ++++
hw/virtio/virtio-balloon-pci.c | 94 ++++
hw/virtio/virtio-blk-pci.c | 97 ++++
hw/virtio/virtio-crypto-pci.c | 14 +
hw/virtio/virtio-input-host-pci.c | 45 ++
hw/virtio/virtio-input-pci.c | 154 ++++++
hw/virtio/virtio-net-pci.c | 96 ++++
hw/virtio/virtio-pci.c | 783 ------------------------------
hw/virtio/virtio-pci.h | 234 ---------
hw/virtio/virtio-rng-pci.c | 86 ++++
hw/virtio/virtio-scsi-pci.c | 106 ++++
hw/virtio/virtio-serial-pci.c | 112 +++++
tests/Makefile.include | 18 +-
21 files changed, 1308 insertions(+), 1028 deletions(-)
create mode 100644 hw/virtio/vhost-scsi-pci.c
create mode 100644 hw/virtio/vhost-user-blk-pci.c
create mode 100644 hw/virtio/vhost-user-scsi-pci.c
create mode 100644 hw/virtio/vhost-vsock-pci.c
create mode 100644 hw/virtio/virtio-9p-pci.c
create mode 100644 hw/virtio/virtio-balloon-pci.c
create mode 100644 hw/virtio/virtio-blk-pci.c
create mode 100644 hw/virtio/virtio-input-host-pci.c
create mode 100644 hw/virtio/virtio-input-pci.c
create mode 100644 hw/virtio/virtio-net-pci.c
create mode 100644 hw/virtio/virtio-rng-pci.c
create mode 100644 hw/virtio/virtio-scsi-pci.c
create mode 100644 hw/virtio/virtio-serial-pci.c
--
2.19.1
^ permalink raw reply [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
@ 2018-11-26 19:59 ` Juan Quintela
2018-11-28 17:33 ` Laurent Vivier
2018-11-29 6:30 ` Thomas Huth
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host " Juan Quintela
` (16 subsequent siblings)
17 siblings, 2 replies; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Updated copyright info
Also split virtio-pci.h bits
---
hw/virtio/Makefile.objs | 2 +-
hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 51 -----------------------
hw/virtio/virtio-pci.h | 18 --------
4 files changed, 83 insertions(+), 70 deletions(-)
create mode 100644 hw/virtio/vhost-vsock-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 1b2799cfd8..4fbf7de84b 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -10,7 +10,7 @@ obj-$(CONFIG_VIRTIO_CRYPTO) += virtio-crypto.o
obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-pci.o
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
-obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
+obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
new file mode 100644
index 0000000000..5cafa8335c
--- /dev/null
+++ b/hw/virtio/vhost-vsock-pci.c
@@ -0,0 +1,82 @@
+/*
+ * Vhost vsock PCI Bindings
+ *
+ * Copyright 2015 Red Hat, Inc.
+ *
+ * Authors:
+ * Stefan Hajnoczi <stefanha@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/vhost-vsock.h"
+
+typedef struct VHostVSockPCI VHostVSockPCI;
+
+/*
+ * vhost-vsock-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VHOST_VSOCK_PCI "vhost-vsock-pci"
+#define VHOST_VSOCK_PCI(obj) \
+ OBJECT_CHECK(VHostVSockPCI, (obj), TYPE_VHOST_VSOCK_PCI)
+
+struct VHostVSockPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostVSock vdev;
+};
+
+static Property vhost_vsock_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_vsock_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = vhost_vsock_pci_realize;
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+ dc->props = vhost_vsock_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_VSOCK;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
+}
+
+static void vhost_vsock_pci_instance_init(Object *obj)
+{
+ VHostVSockPCI *dev = VHOST_VSOCK_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_VSOCK);
+}
+
+static const TypeInfo vhost_vsock_pci_info = {
+ .name = TYPE_VHOST_VSOCK_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostVSockPCI),
+ .instance_init = vhost_vsock_pci_instance_init,
+ .class_init = vhost_vsock_pci_class_init,
+};
+
+static void virtio_pci_vhost_register(void)
+{
+ type_register_static(&vhost_vsock_pci_info);
+}
+
+type_init(virtio_pci_vhost_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index a954799267..56b39a3699 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2238,54 +2238,6 @@ static const TypeInfo vhost_user_scsi_pci_info = {
};
#endif
-/* vhost-vsock-pci */
-
-#ifdef CONFIG_VHOST_VSOCK
-static Property vhost_vsock_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_vsock_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = vhost_vsock_pci_realize;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
- dc->props = vhost_vsock_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_VSOCK;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
-}
-
-static void vhost_vsock_pci_instance_init(Object *obj)
-{
- VHostVSockPCI *dev = VHOST_VSOCK_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_VSOCK);
-}
-
-static const TypeInfo vhost_vsock_pci_info = {
- .name = TYPE_VHOST_VSOCK_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostVSockPCI),
- .instance_init = vhost_vsock_pci_instance_init,
- .class_init = vhost_vsock_pci_class_init,
-};
-#endif
-
/* virtio-balloon-pci */
static Property virtio_balloon_pci_properties[] = {
@@ -2720,9 +2672,6 @@ static void virtio_pci_register_types(void)
#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
type_register_static(&vhost_user_scsi_pci_info);
#endif
-#ifdef CONFIG_VHOST_VSOCK
- type_register_static(&vhost_vsock_pci_info);
-#endif
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 813082b0d7..25d225bc7d 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -37,9 +37,6 @@
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
#endif
-#ifdef CONFIG_VHOST_VSOCK
-#include "hw/virtio/vhost-vsock.h"
-#endif
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
@@ -55,7 +52,6 @@ typedef struct VirtIOInputPCI VirtIOInputPCI;
typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
-typedef struct VHostVSockPCI VHostVSockPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
/* virtio-pci-bus */
@@ -388,20 +384,6 @@ struct VirtIOGPUPCI {
VirtIOGPU vdev;
};
-#ifdef CONFIG_VHOST_VSOCK
-/*
- * vhost-vsock-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VHOST_VSOCK_PCI "vhost-vsock-pci"
-#define VHOST_VSOCK_PCI(obj) \
- OBJECT_CHECK(VHostVSockPCI, (obj), TYPE_VHOST_VSOCK_PCI)
-
-struct VHostVSockPCI {
- VirtIOPCIProxy parent_obj;
- VHostVSock vdev;
-};
-#endif
-
/*
* virtio-crypto-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits " Juan Quintela
@ 2018-11-26 19:59 ` Juan Quintela
2018-11-28 18:00 ` Laurent Vivier
2018-11-28 18:21 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 03/16] virtio: split virtio input " Juan Quintela
` (15 subsequent siblings)
17 siblings, 2 replies; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
default-configs/virtio.mak | 1 +
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-input-host-pci.c | 45 +++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 20 --------------
hw/virtio/virtio-pci.h | 14 ----------
5 files changed, 47 insertions(+), 34 deletions(-)
create mode 100644 hw/virtio/virtio-input-host-pci.c
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index 1304849018..5ae4a61018 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -12,3 +12,4 @@ CONFIG_VIRTIO_RNG=y
CONFIG_SCSI=y
CONFIG_VIRTIO_SCSI=y
CONFIG_VIRTIO_SERIAL=y
+CONFIG_VIRTIO_INPUT_HOST=$(CONFIG_LINUX)
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 4fbf7de84b..685ae1d866 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -11,6 +11,7 @@ obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-p
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
+obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-input-host-pci.c b/hw/virtio/virtio-input-host-pci.c
new file mode 100644
index 0000000000..4048e2f01e
--- /dev/null
+++ b/hw/virtio/virtio-input-host-pci.c
@@ -0,0 +1,45 @@
+/*
+ * Virtio input host PCI Bindings
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-input.h"
+
+typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
+
+#define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
+#define VIRTIO_INPUT_HOST_PCI(obj) \
+ OBJECT_CHECK(VirtIOInputHostPCI, (obj), TYPE_VIRTIO_INPUT_HOST_PCI)
+
+struct VirtIOInputHostPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOInputHost vdev;
+};
+
+static void virtio_input_host_initfn(Object *obj)
+{
+ VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_INPUT_HOST);
+}
+
+static const TypeInfo virtio_input_host_pci_info = {
+ .name = TYPE_VIRTIO_INPUT_HOST_PCI,
+ .parent = TYPE_VIRTIO_INPUT_PCI,
+ .instance_size = sizeof(VirtIOInputHostPCI),
+ .instance_init = virtio_input_host_initfn,
+};
+
+static void virtio_input_host_pci_register(void)
+{
+ type_register_static(&virtio_input_host_pci_info);
+}
+
+type_init(virtio_input_host_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 56b39a3699..97e40da9e8 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2580,23 +2580,6 @@ static const TypeInfo virtio_tablet_pci_info = {
.instance_init = virtio_tablet_initfn,
};
-#ifdef CONFIG_LINUX
-static void virtio_host_initfn(Object *obj)
-{
- VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_INPUT_HOST);
-}
-
-static const TypeInfo virtio_host_pci_info = {
- .name = TYPE_VIRTIO_INPUT_HOST_PCI,
- .parent = TYPE_VIRTIO_INPUT_PCI,
- .instance_size = sizeof(VirtIOInputHostPCI),
- .instance_init = virtio_host_initfn,
-};
-#endif
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2650,9 +2633,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_keyboard_pci_info);
type_register_static(&virtio_mouse_pci_info);
type_register_static(&virtio_tablet_pci_info);
-#ifdef CONFIG_LINUX
- type_register_static(&virtio_host_pci_info);
-#endif
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
#ifdef CONFIG_VIRTFS
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 25d225bc7d..cf4cbecfab 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -50,7 +50,6 @@ typedef struct VHostUserBlkPCI VHostUserBlkPCI;
typedef struct VirtIORngPCI VirtIORngPCI;
typedef struct VirtIOInputPCI VirtIOInputPCI;
typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
-typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -359,19 +358,6 @@ struct VirtIOInputHIDPCI {
VirtIOInputHID vdev;
};
-#ifdef CONFIG_LINUX
-
-#define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
-#define VIRTIO_INPUT_HOST_PCI(obj) \
- OBJECT_CHECK(VirtIOInputHostPCI, (obj), TYPE_VIRTIO_INPUT_HOST_PCI)
-
-struct VirtIOInputHostPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOInputHost vdev;
-};
-
-#endif
-
/*
* virtio-gpu-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 03/16] virtio: split virtio input bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits " Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host " Juan Quintela
@ 2018-11-26 19:59 ` Juan Quintela
2018-11-28 18:20 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng " Juan Quintela
` (14 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-input-pci.c | 154 +++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 113 -------------------------
hw/virtio/virtio-pci.h | 22 -----
4 files changed, 155 insertions(+), 135 deletions(-)
create mode 100644 hw/virtio/virtio-input-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 685ae1d866..6819ed4e14 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -12,6 +12,7 @@ obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-p
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
+obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-input-pci.c b/hw/virtio/virtio-input-pci.c
new file mode 100644
index 0000000000..12fc46043e
--- /dev/null
+++ b/hw/virtio/virtio-input-pci.c
@@ -0,0 +1,154 @@
+/*
+ * Virtio input PCI Bindings
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-input.h"
+
+typedef struct VirtIOInputPCI VirtIOInputPCI;
+typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
+
+/*
+ * virtio-input-pci: This extends VirtioPCIProxy.
+ */
+#define VIRTIO_INPUT_PCI(obj) \
+ OBJECT_CHECK(VirtIOInputPCI, (obj), TYPE_VIRTIO_INPUT_PCI)
+
+struct VirtIOInputPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOInput vdev;
+};
+
+#define TYPE_VIRTIO_INPUT_HID_PCI "virtio-input-hid-pci"
+#define TYPE_VIRTIO_KEYBOARD_PCI "virtio-keyboard-pci"
+#define TYPE_VIRTIO_MOUSE_PCI "virtio-mouse-pci"
+#define TYPE_VIRTIO_TABLET_PCI "virtio-tablet-pci"
+#define VIRTIO_INPUT_HID_PCI(obj) \
+ OBJECT_CHECK(VirtIOInputHIDPCI, (obj), TYPE_VIRTIO_INPUT_HID_PCI)
+
+struct VirtIOInputHIDPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOInputHID vdev;
+};
+
+static Property virtio_input_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_input_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOInputPCI *vinput = VIRTIO_INPUT_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&vinput->vdev);
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ virtio_pci_force_virtio_1(vpci_dev);
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_input_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ dc->props = virtio_input_pci_properties;
+ k->realize = virtio_input_pci_realize;
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+
+ pcidev_k->class_id = PCI_CLASS_INPUT_OTHER;
+}
+
+static void virtio_input_hid_kbd_pci_class_init(ObjectClass *klass, void *data)
+{
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ pcidev_k->class_id = PCI_CLASS_INPUT_KEYBOARD;
+}
+
+static void virtio_input_hid_mouse_pci_class_init(ObjectClass *klass,
+ void *data)
+{
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ pcidev_k->class_id = PCI_CLASS_INPUT_MOUSE;
+}
+
+static void virtio_keyboard_initfn(Object *obj)
+{
+ VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_KEYBOARD);
+}
+
+static void virtio_mouse_initfn(Object *obj)
+{
+ VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_MOUSE);
+}
+
+static void virtio_tablet_initfn(Object *obj)
+{
+ VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_TABLET);
+}
+
+static const TypeInfo virtio_input_pci_info = {
+ .name = TYPE_VIRTIO_INPUT_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOInputPCI),
+ .class_init = virtio_input_pci_class_init,
+ .abstract = true,
+};
+
+static const TypeInfo virtio_input_hid_pci_info = {
+ .name = TYPE_VIRTIO_INPUT_HID_PCI,
+ .parent = TYPE_VIRTIO_INPUT_PCI,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .abstract = true,
+};
+
+static const TypeInfo virtio_keyboard_pci_info = {
+ .name = TYPE_VIRTIO_KEYBOARD_PCI,
+ .parent = TYPE_VIRTIO_INPUT_HID_PCI,
+ .class_init = virtio_input_hid_kbd_pci_class_init,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .instance_init = virtio_keyboard_initfn,
+};
+
+static const TypeInfo virtio_mouse_pci_info = {
+ .name = TYPE_VIRTIO_MOUSE_PCI,
+ .parent = TYPE_VIRTIO_INPUT_HID_PCI,
+ .class_init = virtio_input_hid_mouse_pci_class_init,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .instance_init = virtio_mouse_initfn,
+};
+
+static const TypeInfo virtio_tablet_pci_info = {
+ .name = TYPE_VIRTIO_TABLET_PCI,
+ .parent = TYPE_VIRTIO_INPUT_HID_PCI,
+ .instance_size = sizeof(VirtIOInputHIDPCI),
+ .instance_init = virtio_tablet_initfn,
+};
+
+static void virtio_pci_input_register(void)
+{
+ type_register_static(&virtio_input_pci_info);
+ type_register_static(&virtio_input_hid_pci_info);
+ type_register_static(&virtio_keyboard_pci_info);
+ type_register_static(&virtio_mouse_pci_info);
+ type_register_static(&virtio_tablet_pci_info);
+}
+
+type_init(virtio_pci_input_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 97e40da9e8..bb1d2db032 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -24,7 +24,6 @@
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-balloon.h"
-#include "hw/virtio/virtio-input.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -2473,113 +2472,6 @@ static const TypeInfo virtio_rng_pci_info = {
.class_init = virtio_rng_pci_class_init,
};
-/* virtio-input-pci */
-
-static Property virtio_input_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_input_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOInputPCI *vinput = VIRTIO_INPUT_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&vinput->vdev);
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- virtio_pci_force_virtio_1(vpci_dev);
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_input_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- dc->props = virtio_input_pci_properties;
- k->realize = virtio_input_pci_realize;
- set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
-
- pcidev_k->class_id = PCI_CLASS_INPUT_OTHER;
-}
-
-static void virtio_input_hid_kbd_pci_class_init(ObjectClass *klass, void *data)
-{
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- pcidev_k->class_id = PCI_CLASS_INPUT_KEYBOARD;
-}
-
-static void virtio_input_hid_mouse_pci_class_init(ObjectClass *klass,
- void *data)
-{
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- pcidev_k->class_id = PCI_CLASS_INPUT_MOUSE;
-}
-
-static void virtio_keyboard_initfn(Object *obj)
-{
- VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_KEYBOARD);
-}
-
-static void virtio_mouse_initfn(Object *obj)
-{
- VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_MOUSE);
-}
-
-static void virtio_tablet_initfn(Object *obj)
-{
- VirtIOInputHIDPCI *dev = VIRTIO_INPUT_HID_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_TABLET);
-}
-
-static const TypeInfo virtio_input_pci_info = {
- .name = TYPE_VIRTIO_INPUT_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOInputPCI),
- .class_init = virtio_input_pci_class_init,
- .abstract = true,
-};
-
-static const TypeInfo virtio_input_hid_pci_info = {
- .name = TYPE_VIRTIO_INPUT_HID_PCI,
- .parent = TYPE_VIRTIO_INPUT_PCI,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .abstract = true,
-};
-
-static const TypeInfo virtio_keyboard_pci_info = {
- .name = TYPE_VIRTIO_KEYBOARD_PCI,
- .parent = TYPE_VIRTIO_INPUT_HID_PCI,
- .class_init = virtio_input_hid_kbd_pci_class_init,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .instance_init = virtio_keyboard_initfn,
-};
-
-static const TypeInfo virtio_mouse_pci_info = {
- .name = TYPE_VIRTIO_MOUSE_PCI,
- .parent = TYPE_VIRTIO_INPUT_HID_PCI,
- .class_init = virtio_input_hid_mouse_pci_class_init,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .instance_init = virtio_mouse_initfn,
-};
-
-static const TypeInfo virtio_tablet_pci_info = {
- .name = TYPE_VIRTIO_TABLET_PCI,
- .parent = TYPE_VIRTIO_INPUT_HID_PCI,
- .instance_size = sizeof(VirtIOInputHIDPCI),
- .instance_init = virtio_tablet_initfn,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2628,11 +2520,6 @@ static const TypeInfo virtio_pci_bus_info = {
static void virtio_pci_register_types(void)
{
type_register_static(&virtio_rng_pci_info);
- type_register_static(&virtio_input_pci_info);
- type_register_static(&virtio_input_hid_pci_info);
- type_register_static(&virtio_keyboard_pci_info);
- type_register_static(&virtio_mouse_pci_info);
- type_register_static(&virtio_tablet_pci_info);
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
#ifdef CONFIG_VIRTFS
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index cf4cbecfab..32d5f0fbff 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -23,7 +23,6 @@
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-balloon.h"
#include "hw/virtio/virtio-bus.h"
-#include "hw/virtio/virtio-input.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
#include "hw/virtio/vhost-user-scsi.h"
@@ -48,8 +47,6 @@ typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
typedef struct VHostUserBlkPCI VHostUserBlkPCI;
typedef struct VirtIORngPCI VirtIORngPCI;
-typedef struct VirtIOInputPCI VirtIOInputPCI;
-typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -338,25 +335,6 @@ struct VirtIORngPCI {
* virtio-input-pci: This extends VirtioPCIProxy.
*/
#define TYPE_VIRTIO_INPUT_PCI "virtio-input-pci"
-#define VIRTIO_INPUT_PCI(obj) \
- OBJECT_CHECK(VirtIOInputPCI, (obj), TYPE_VIRTIO_INPUT_PCI)
-
-struct VirtIOInputPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOInput vdev;
-};
-
-#define TYPE_VIRTIO_INPUT_HID_PCI "virtio-input-hid-pci"
-#define TYPE_VIRTIO_KEYBOARD_PCI "virtio-keyboard-pci"
-#define TYPE_VIRTIO_MOUSE_PCI "virtio-mouse-pci"
-#define TYPE_VIRTIO_TABLET_PCI "virtio-tablet-pci"
-#define VIRTIO_INPUT_HID_PCI(obj) \
- OBJECT_CHECK(VirtIOInputHIDPCI, (obj), TYPE_VIRTIO_INPUT_HID_PCI)
-
-struct VirtIOInputHIDPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOInputHID vdev;
-};
/*
* virtio-gpu-pci: This extends VirtioPCIProxy.
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (2 preceding siblings ...)
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 03/16] virtio: split virtio input " Juan Quintela
@ 2018-11-26 19:59 ` Juan Quintela
2018-11-28 20:06 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 05/16] virtio: split virtio balloon " Juan Quintela
` (13 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
Remove the "contributions after" clause. This is based on
commit 59ccd20a9ac719cff82180429458728f03ec612f
Author: KONRAD Frederic <fred.konrad@greensocs.com>
Date: Wed Apr 24 10:07:56 2013 +0200
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-pci.c | 52 -----------------------
hw/virtio/virtio-pci.h | 14 -------
hw/virtio/virtio-rng-pci.c | 86 ++++++++++++++++++++++++++++++++++++++
tests/Makefile.include | 1 +
5 files changed, 88 insertions(+), 66 deletions(-)
create mode 100644 hw/virtio/virtio-rng-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 6819ed4e14..2efa544a2d 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -13,6 +13,7 @@ obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
+obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index bb1d2db032..433ece611d 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2421,57 +2421,6 @@ static const TypeInfo virtio_net_pci_info = {
.class_init = virtio_net_pci_class_init,
};
-/* virtio-rng-pci */
-
-static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIORngPCI *vrng = VIRTIO_RNG_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&vrng->vdev);
- Error *err = NULL;
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", &err);
- if (err) {
- error_propagate(errp, err);
- return;
- }
-
- object_property_set_link(OBJECT(vrng),
- OBJECT(vrng->vdev.conf.rng), "rng",
- NULL);
-}
-
-static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- k->realize = virtio_rng_pci_realize;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
-
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_RNG;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_OTHERS;
-}
-
-static void virtio_rng_initfn(Object *obj)
-{
- VirtIORngPCI *dev = VIRTIO_RNG_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_RNG);
-}
-
-static const TypeInfo virtio_rng_pci_info = {
- .name = TYPE_VIRTIO_RNG_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIORngPCI),
- .instance_init = virtio_rng_initfn,
- .class_init = virtio_rng_pci_class_init,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2519,7 +2468,6 @@ static const TypeInfo virtio_pci_bus_info = {
static void virtio_pci_register_types(void)
{
- type_register_static(&virtio_rng_pci_info);
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
#ifdef CONFIG_VIRTFS
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 32d5f0fbff..2415eb6a4d 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -18,7 +18,6 @@
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
-#include "hw/virtio/virtio-rng.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-balloon.h"
@@ -46,7 +45,6 @@ typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
typedef struct VHostUserBlkPCI VHostUserBlkPCI;
-typedef struct VirtIORngPCI VirtIORngPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -319,18 +317,6 @@ typedef struct V9fsPCIState {
#endif
-/*
- * virtio-rng-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_RNG_PCI "virtio-rng-pci"
-#define VIRTIO_RNG_PCI(obj) \
- OBJECT_CHECK(VirtIORngPCI, (obj), TYPE_VIRTIO_RNG_PCI)
-
-struct VirtIORngPCI {
- VirtIOPCIProxy parent_obj;
- VirtIORNG vdev;
-};
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/hw/virtio/virtio-rng-pci.c b/hw/virtio/virtio-rng-pci.c
new file mode 100644
index 0000000000..60688fbea9
--- /dev/null
+++ b/hw/virtio/virtio-rng-pci.c
@@ -0,0 +1,86 @@
+/*
+ * Virtio rng PCI Bindings
+ *
+ * Copyright 2012 Red Hat, Inc.
+ * Copyright 2012 Amit Shah <amit.shah@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-rng.h"
+#include "qapi/error.h"
+
+typedef struct VirtIORngPCI VirtIORngPCI;
+
+/*
+ * virtio-rng-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_RNG_PCI "virtio-rng-pci"
+#define VIRTIO_RNG_PCI(obj) \
+ OBJECT_CHECK(VirtIORngPCI, (obj), TYPE_VIRTIO_RNG_PCI)
+
+struct VirtIORngPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIORNG vdev;
+};
+
+static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIORngPCI *vrng = VIRTIO_RNG_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&vrng->vdev);
+ Error *err = NULL;
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", &err);
+ if (err) {
+ error_propagate(errp, err);
+ return;
+ }
+
+ object_property_set_link(OBJECT(vrng),
+ OBJECT(vrng->vdev.conf.rng), "rng",
+ NULL);
+}
+
+static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ k->realize = virtio_rng_pci_realize;
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_RNG;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_OTHERS;
+}
+
+static void virtio_rng_initfn(Object *obj)
+{
+ VirtIORngPCI *dev = VIRTIO_RNG_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_RNG);
+}
+
+static const TypeInfo virtio_rng_pci_info = {
+ .name = TYPE_VIRTIO_RNG_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIORngPCI),
+ .instance_init = virtio_rng_initfn,
+ .class_init = virtio_rng_pci_class_init,
+};
+
+static void virtio_rng_pci_register(void)
+{
+ type_register_static(&virtio_rng_pci_info);
+}
+
+type_init(virtio_rng_pci_register)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index fb0b449c02..e8235890ec 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -149,6 +149,7 @@ check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 05/16] virtio: split virtio balloon bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (3 preceding siblings ...)
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng " Juan Quintela
@ 2018-11-26 19:59 ` Juan Quintela
2018-11-28 20:09 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p " Juan Quintela
` (12 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-balloon-pci.c | 94 ++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 58 ---------------------
hw/virtio/virtio-pci.h | 14 -----
tests/Makefile.include | 2 +-
5 files changed, 96 insertions(+), 73 deletions(-)
create mode 100644 hw/virtio/virtio-balloon-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 2efa544a2d..0f0b846a45 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -14,6 +14,7 @@ obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
+obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-balloon-pci.c b/hw/virtio/virtio-balloon-pci.c
new file mode 100644
index 0000000000..2e9d92990b
--- /dev/null
+++ b/hw/virtio/virtio-balloon-pci.c
@@ -0,0 +1,94 @@
+/*
+ * Virtio balloon PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/virtio/virtio-balloon.h"
+#include "qapi/error.h"
+
+typedef struct VirtIOBalloonPCI VirtIOBalloonPCI;
+
+/*
+ * virtio-balloon-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_BALLOON_PCI "virtio-balloon-pci"
+#define VIRTIO_BALLOON_PCI(obj) \
+ OBJECT_CHECK(VirtIOBalloonPCI, (obj), TYPE_VIRTIO_BALLOON_PCI)
+
+struct VirtIOBalloonPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOBalloon vdev;
+};
+
+static Property virtio_balloon_pci_properties[] = {
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_balloon_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ if (vpci_dev->class_code != PCI_CLASS_OTHERS &&
+ vpci_dev->class_code != PCI_CLASS_MEMORY_RAM) { /* qemu < 1.1 */
+ vpci_dev->class_code = PCI_CLASS_OTHERS;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = virtio_balloon_pci_realize;
+ set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+ dc->props = virtio_balloon_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BALLOON;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_OTHERS;
+}
+
+static void virtio_balloon_pci_instance_init(Object *obj)
+{
+ VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_BALLOON);
+ object_property_add_alias(obj, "guest-stats", OBJECT(&dev->vdev),
+ "guest-stats", &error_abort);
+ object_property_add_alias(obj, "guest-stats-polling-interval",
+ OBJECT(&dev->vdev),
+ "guest-stats-polling-interval", &error_abort);
+}
+
+static const TypeInfo virtio_balloon_pci_info = {
+ .name = TYPE_VIRTIO_BALLOON_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOBalloonPCI),
+ .instance_init = virtio_balloon_pci_instance_init,
+ .class_init = virtio_balloon_pci_class_init,
+};
+
+static void virtio_balloon_pci_register(void)
+{
+ type_register_static(&virtio_balloon_pci_info);
+}
+
+type_init(virtio_balloon_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 433ece611d..855a7fdd40 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -23,7 +23,6 @@
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
-#include "hw/virtio/virtio-balloon.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -2237,62 +2236,6 @@ static const TypeInfo vhost_user_scsi_pci_info = {
};
#endif
-/* virtio-balloon-pci */
-
-static Property virtio_balloon_pci_properties[] = {
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_balloon_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- if (vpci_dev->class_code != PCI_CLASS_OTHERS &&
- vpci_dev->class_code != PCI_CLASS_MEMORY_RAM) { /* qemu < 1.1 */
- vpci_dev->class_code = PCI_CLASS_OTHERS;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = virtio_balloon_pci_realize;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
- dc->props = virtio_balloon_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BALLOON;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_OTHERS;
-}
-
-static void virtio_balloon_pci_instance_init(Object *obj)
-{
- VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_BALLOON);
- object_property_add_alias(obj, "guest-stats", OBJECT(&dev->vdev),
- "guest-stats", &error_abort);
- object_property_add_alias(obj, "guest-stats-polling-interval",
- OBJECT(&dev->vdev),
- "guest-stats-polling-interval", &error_abort);
-}
-
-static const TypeInfo virtio_balloon_pci_info = {
- .name = TYPE_VIRTIO_BALLOON_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOBalloonPCI),
- .instance_init = virtio_balloon_pci_instance_init,
- .class_init = virtio_balloon_pci_class_init,
-};
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2478,7 +2421,6 @@ static void virtio_pci_register_types(void)
type_register_static(&vhost_user_blk_pci_info);
#endif
type_register_static(&virtio_scsi_pci_info);
- type_register_static(&virtio_balloon_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
#ifdef CONFIG_VHOST_SCSI
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 2415eb6a4d..093fde7f4f 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -20,7 +20,6 @@
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-scsi.h"
-#include "hw/virtio/virtio-balloon.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
@@ -39,7 +38,6 @@
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
-typedef struct VirtIOBalloonPCI VirtIOBalloonPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
@@ -264,18 +262,6 @@ struct VirtIOBlkPCI {
VirtIOBlock vdev;
};
-/*
- * virtio-balloon-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_BALLOON_PCI "virtio-balloon-pci"
-#define VIRTIO_BALLOON_PCI(obj) \
- OBJECT_CHECK(VirtIOBalloonPCI, (obj), TYPE_VIRTIO_BALLOON_PCI)
-
-struct VirtIOBalloonPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOBalloon vdev;
-};
-
/*
* virtio-serial-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index e8235890ec..89800e76ca 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -146,7 +146,7 @@ check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (4 preceding siblings ...)
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 05/16] virtio: split virtio balloon " Juan Quintela
@ 2018-11-26 19:59 ` Juan Quintela
2018-11-28 20:15 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 07/16] virtio: split vhost user blk " Juan Quintela
` (11 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 19:59 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-9p-pci.c | 86 +++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 52 -----------------------
hw/virtio/virtio-pci.h | 20 ---------
4 files changed, 87 insertions(+), 72 deletions(-)
create mode 100644 hw/virtio/virtio-9p-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 0f0b846a45..bc802db4e8 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -15,6 +15,7 @@ obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
+obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-9p-pci.c b/hw/virtio/virtio-9p-pci.c
new file mode 100644
index 0000000000..74c6ca2ddb
--- /dev/null
+++ b/hw/virtio/virtio-9p-pci.c
@@ -0,0 +1,86 @@
+/*
+ * Virtio 9p PCI Bindings
+ *
+ * Copyright IBM, Corp. 2010
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/9pfs/virtio-9p.h"
+
+/*
+ * virtio-9p-pci: This extends VirtioPCIProxy.
+ */
+
+#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci"
+#define VIRTIO_9P_PCI(obj) \
+ OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
+
+typedef struct V9fsPCIState {
+ VirtIOPCIProxy parent_obj;
+ V9fsVirtioState vdev;
+} V9fsPCIState;
+
+static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static Property virtio_9p_pci_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+
+ k->realize = virtio_9p_pci_realize;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = 0x2;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = virtio_9p_pci_properties;
+}
+
+static void virtio_9p_pci_instance_init(Object *obj)
+{
+ V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_9P);
+}
+
+static const TypeInfo virtio_9p_pci_info = {
+ .name = TYPE_VIRTIO_9P_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(V9fsPCIState),
+ .instance_init = virtio_9p_pci_instance_init,
+ .class_init = virtio_9p_pci_class_init,
+};
+
+static void virtio_9p_pci_register(void)
+{
+ type_register_static(&virtio_9p_pci_info);
+}
+
+type_init(virtio_9p_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 855a7fdd40..bad9279f19 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1077,55 +1077,6 @@ static void virtio_pci_vmstate_change(DeviceState *d, bool running)
}
}
-#ifdef CONFIG_VIRTFS
-static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static Property virtio_9p_pci_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
-
- k->realize = virtio_9p_pci_realize;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = 0x2;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = virtio_9p_pci_properties;
-}
-
-static void virtio_9p_pci_instance_init(Object *obj)
-{
- V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_9P);
-}
-
-static const TypeInfo virtio_9p_pci_info = {
- .name = TYPE_VIRTIO_9P_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(V9fsPCIState),
- .instance_init = virtio_9p_pci_instance_init,
- .class_init = virtio_9p_pci_class_init,
-};
-#endif /* CONFIG_VIRTFS */
-
/*
* virtio-pci: This is the PCIDevice which has a virtio-pci-bus.
*/
@@ -2413,9 +2364,6 @@ static void virtio_pci_register_types(void)
{
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
-#ifdef CONFIG_VIRTFS
- type_register_static(&virtio_9p_pci_info);
-#endif
type_register_static(&virtio_blk_pci_info);
#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
type_register_static(&vhost_user_blk_pci_info);
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 093fde7f4f..200950de0a 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -28,9 +28,6 @@
#include "hw/virtio/vhost-user-blk.h"
#endif
-#ifdef CONFIG_VIRTFS
-#include "hw/9pfs/virtio-9p.h"
-#endif
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
#endif
@@ -286,23 +283,6 @@ struct VirtIONetPCI {
VirtIONet vdev;
};
-/*
- * virtio-9p-pci: This extends VirtioPCIProxy.
- */
-
-#ifdef CONFIG_VIRTFS
-
-#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci"
-#define VIRTIO_9P_PCI(obj) \
- OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
-
-typedef struct V9fsPCIState {
- VirtIOPCIProxy parent_obj;
- V9fsVirtioState vdev;
-} V9fsPCIState;
-
-#endif
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 07/16] virtio: split vhost user blk bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (5 preceding siblings ...)
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:21 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 08/16] virtio: split vhost user scsi " Juan Quintela
` (10 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-user-blk-pci.c | 101 +++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 60 --------------------
hw/virtio/virtio-pci.h | 18 ------
4 files changed, 102 insertions(+), 78 deletions(-)
create mode 100644 hw/virtio/vhost-user-blk-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index bc802db4e8..2c95c55bd0 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -11,6 +11,7 @@ obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-p
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
+obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
diff --git a/hw/virtio/vhost-user-blk-pci.c b/hw/virtio/vhost-user-blk-pci.c
new file mode 100644
index 0000000000..29ffcc4361
--- /dev/null
+++ b/hw/virtio/vhost-user-blk-pci.c
@@ -0,0 +1,101 @@
+/*
+ * Vhost user blk PCI Bindings
+ *
+ * Copyright(C) 2017 Intel Corporation.
+ *
+ * Authors:
+ * Changpeng Liu <changpeng.liu@intel.com>
+ *
+ * Largely based on the "vhost-user-scsi.c" and "vhost-scsi.c" implemented by:
+ * Felipe Franciosi <felipe@nutanix.com>
+ * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+ * Nicholas Bellinger <nab@risingtidesystems.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+
+#include "standard-headers/linux/virtio_pci.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/vhost-user-blk.h"
+#include "hw/pci/pci.h"
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+#include "virtio-pci.h"
+
+typedef struct VHostUserBlkPCI VHostUserBlkPCI;
+
+/*
+ * vhost-user-blk-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VHOST_USER_BLK_PCI "vhost-user-blk-pci"
+#define VHOST_USER_BLK_PCI(obj) \
+ OBJECT_CHECK(VHostUserBlkPCI, (obj), TYPE_VHOST_USER_BLK_PCI)
+
+struct VHostUserBlkPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostUserBlk vdev;
+};
+
+static Property vhost_user_blk_pci_properties[] = {
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_user_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = dev->vdev.num_queues + 1;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_user_blk_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = vhost_user_blk_pci_properties;
+ k->realize = vhost_user_blk_pci_realize;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void vhost_user_blk_pci_instance_init(Object *obj)
+{
+ VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_USER_BLK);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo vhost_user_blk_pci_info = {
+ .name = TYPE_VHOST_USER_BLK_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostUserBlkPCI),
+ .instance_init = vhost_user_blk_pci_instance_init,
+ .class_init = vhost_user_blk_pci_class_init,
+};
+
+static void vhost_user_blk_pci_register(void)
+{
+ type_register_static(&vhost_user_blk_pci_info);
+}
+
+type_init(vhost_user_blk_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index bad9279f19..e9c562b1c0 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1952,63 +1952,6 @@ static const TypeInfo virtio_blk_pci_info = {
.class_init = virtio_blk_pci_class_init,
};
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-/* vhost-user-blk */
-
-static Property vhost_user_blk_pci_properties[] = {
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_user_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = dev->vdev.num_queues + 1;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_user_blk_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = vhost_user_blk_pci_properties;
- k->realize = vhost_user_blk_pci_realize;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void vhost_user_blk_pci_instance_init(Object *obj)
-{
- VHostUserBlkPCI *dev = VHOST_USER_BLK_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_USER_BLK);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo vhost_user_blk_pci_info = {
- .name = TYPE_VHOST_USER_BLK_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostUserBlkPCI),
- .instance_init = vhost_user_blk_pci_instance_init,
- .class_init = vhost_user_blk_pci_class_init,
-};
-#endif
-
/* virtio-scsi-pci */
static Property virtio_scsi_pci_properties[] = {
@@ -2365,9 +2308,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
type_register_static(&virtio_blk_pci_info);
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
- type_register_static(&vhost_user_blk_pci_info);
-#endif
type_register_static(&virtio_scsi_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 200950de0a..5e37982f88 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -24,9 +24,6 @@
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
#include "hw/virtio/vhost-user-scsi.h"
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-#include "hw/virtio/vhost-user-blk.h"
-#endif
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
@@ -39,7 +36,6 @@ typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
-typedef struct VHostUserBlkPCI VHostUserBlkPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -233,20 +229,6 @@ struct VHostUserSCSIPCI {
VHostUserSCSI vdev;
};
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-/*
- * vhost-user-blk-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VHOST_USER_BLK_PCI "vhost-user-blk-pci"
-#define VHOST_USER_BLK_PCI(obj) \
- OBJECT_CHECK(VHostUserBlkPCI, (obj), TYPE_VHOST_USER_BLK_PCI)
-
-struct VHostUserBlkPCI {
- VirtIOPCIProxy parent_obj;
- VHostUserBlk vdev;
-};
-#endif
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 08/16] virtio: split vhost user scsi bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (6 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 07/16] virtio: split vhost user blk " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:23 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 09/16] virtio: split vhost " Juan Quintela
` (9 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-user-scsi-pci.c | 101 ++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 58 ------------------
hw/virtio/virtio-pci.h | 11 ----
4 files changed, 102 insertions(+), 69 deletions(-)
create mode 100644 hw/virtio/vhost-user-scsi-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 2c95c55bd0..a5d2e38d3a 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -12,6 +12,7 @@ obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-p
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
+obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
diff --git a/hw/virtio/vhost-user-scsi-pci.c b/hw/virtio/vhost-user-scsi-pci.c
new file mode 100644
index 0000000000..5baec9c356
--- /dev/null
+++ b/hw/virtio/vhost-user-scsi-pci.c
@@ -0,0 +1,101 @@
+/*
+ * Vhost user scsi PCI Bindings
+ *
+ * Copyright (c) 2016 Nutanix Inc. All rights reserved.
+ *
+ * Author:
+ * Felipe Franciosi <felipe@nutanix.com>
+ *
+ * This work is largely based on the "vhost-scsi" implementation by:
+ * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+ * Nicholas Bellinger <nab@risingtidesystems.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+
+#include "standard-headers/linux/virtio_pci.h"
+#include "hw/virtio/vhost-user-scsi.h"
+#include "hw/virtio/virtio.h"
+#include "hw/virtio/virtio-scsi.h"
+#include "hw/pci/pci.h"
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+#include "hw/pci/msi.h"
+#include "hw/pci/msix.h"
+#include "hw/loader.h"
+#include "sysemu/kvm.h"
+#include "virtio-pci.h"
+
+typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
+
+#define TYPE_VHOST_USER_SCSI_PCI "vhost-user-scsi-pci"
+#define VHOST_USER_SCSI_PCI(obj) \
+ OBJECT_CHECK(VHostUserSCSIPCI, (obj), TYPE_VHOST_USER_SCSI_PCI)
+
+struct VHostUserSCSIPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostUserSCSI vdev;
+};
+
+static Property vhost_user_scsi_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = vs->conf.num_queues + 3;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = vhost_user_scsi_pci_realize;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = vhost_user_scsi_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void vhost_user_scsi_pci_instance_init(Object *obj)
+{
+ VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_USER_SCSI);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo vhost_user_scsi_pci_info = {
+ .name = TYPE_VHOST_USER_SCSI_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostUserSCSIPCI),
+ .instance_init = vhost_user_scsi_pci_instance_init,
+ .class_init = vhost_user_scsi_pci_class_init,
+};
+
+static void vhost_user_scsi_pci_register(void)
+{
+ type_register_static(&vhost_user_scsi_pci_info);
+}
+
+type_init(vhost_user_scsi_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index e9c562b1c0..7c99d9385a 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2075,61 +2075,6 @@ static const TypeInfo vhost_scsi_pci_info = {
};
#endif
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
-/* vhost-user-scsi-pci */
-static Property vhost_user_scsi_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_user_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = vs->conf.num_queues + 3;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_user_scsi_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = vhost_user_scsi_pci_realize;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = vhost_user_scsi_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void vhost_user_scsi_pci_instance_init(Object *obj)
-{
- VHostUserSCSIPCI *dev = VHOST_USER_SCSI_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_USER_SCSI);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo vhost_user_scsi_pci_info = {
- .name = TYPE_VHOST_USER_SCSI_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostUserSCSIPCI),
- .instance_init = vhost_user_scsi_pci_instance_init,
- .class_init = vhost_user_scsi_pci_class_init,
-};
-#endif
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2314,9 +2259,6 @@ static void virtio_pci_register_types(void)
#ifdef CONFIG_VHOST_SCSI
type_register_static(&vhost_scsi_pci_info);
#endif
-#if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
- type_register_static(&vhost_user_scsi_pci_info);
-#endif
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 5e37982f88..7f06d7f331 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -23,7 +23,6 @@
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
-#include "hw/virtio/vhost-user-scsi.h"
#ifdef CONFIG_VHOST_SCSI
#include "hw/virtio/vhost-scsi.h"
@@ -35,7 +34,6 @@ typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VHostSCSIPCI VHostSCSIPCI;
-typedef struct VHostUserSCSIPCI VHostUserSCSIPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -220,15 +218,6 @@ struct VHostSCSIPCI {
};
#endif
-#define TYPE_VHOST_USER_SCSI_PCI "vhost-user-scsi-pci"
-#define VHOST_USER_SCSI_PCI(obj) \
- OBJECT_CHECK(VHostUserSCSIPCI, (obj), TYPE_VHOST_USER_SCSI_PCI)
-
-struct VHostUserSCSIPCI {
- VirtIOPCIProxy parent_obj;
- VHostUserSCSI vdev;
-};
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 09/16] virtio: split vhost scsi bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (7 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 08/16] virtio: split vhost user scsi " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:25 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 10/16] virtio: split virtio " Juan Quintela
` (8 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-scsi-pci.c | 95 ++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 59 -----------------------
hw/virtio/virtio-pci.h | 19 --------
4 files changed, 96 insertions(+), 78 deletions(-)
create mode 100644 hw/virtio/vhost-scsi-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index a5d2e38d3a..6e6e001449 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -13,6 +13,7 @@ obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
obj-$(CONFIG_VHOST_USER_BLK) += vhost-user-blk-pci.o
obj-$(CONFIG_VHOST_USER_SCSI) += vhost-user-scsi-pci.o
+obj-$(CONFIG_VHOST_SCSI) += vhost-scsi-pci.o
obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c
new file mode 100644
index 0000000000..2be2c567ea
--- /dev/null
+++ b/hw/virtio/vhost-scsi-pci.c
@@ -0,0 +1,95 @@
+/*
+ * Vhost scsi PCI bindings
+ *
+ * Copyright IBM, Corp. 2011
+ *
+ * Authors:
+ * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
+ *
+ * Changes for QEMU mainline + tcm_vhost kernel upstream:
+ * Nicholas Bellinger <nab@risingtidesystems.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2 or later.
+ * See the COPYING.LIB file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+
+#include "standard-headers/linux/virtio_pci.h"
+#include "hw/virtio/vhost-scsi.h"
+#include "qapi/error.h"
+#include "virtio-pci.h"
+
+typedef struct VHostSCSIPCI VHostSCSIPCI;
+
+/*
+ * vhost-scsi-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VHOST_SCSI_PCI "vhost-scsi-pci"
+#define VHOST_SCSI_PCI(obj) \
+ OBJECT_CHECK(VHostSCSIPCI, (obj), TYPE_VHOST_SCSI_PCI)
+
+struct VHostSCSIPCI {
+ VirtIOPCIProxy parent_obj;
+ VHostSCSI vdev;
+};
+
+static Property vhost_scsi_pci_properties[] = {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = vs->conf.num_queues + 3;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = vhost_scsi_pci_realize;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = vhost_scsi_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void vhost_scsi_pci_instance_init(Object *obj)
+{
+ VHostSCSIPCI *dev = VHOST_SCSI_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VHOST_SCSI);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo vhost_scsi_pci_info = {
+ .name = TYPE_VHOST_SCSI_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VHostSCSIPCI),
+ .instance_init = vhost_scsi_pci_instance_init,
+ .class_init = vhost_scsi_pci_class_init,
+};
+
+static void vhost_scsi_pci_register(void)
+{
+ type_register_static(&vhost_scsi_pci_info);
+}
+
+type_init(vhost_scsi_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 7c99d9385a..6c42074d37 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -2019,62 +2019,6 @@ static const TypeInfo virtio_scsi_pci_info = {
.class_init = virtio_scsi_pci_class_init,
};
-/* vhost-scsi-pci */
-
-#ifdef CONFIG_VHOST_SCSI
-static Property vhost_scsi_pci_properties[] = {
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = vs->conf.num_queues + 3;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = vhost_scsi_pci_realize;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = vhost_scsi_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void vhost_scsi_pci_instance_init(Object *obj)
-{
- VHostSCSIPCI *dev = VHOST_SCSI_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VHOST_SCSI);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo vhost_scsi_pci_info = {
- .name = TYPE_VHOST_SCSI_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VHostSCSIPCI),
- .instance_init = vhost_scsi_pci_instance_init,
- .class_init = vhost_scsi_pci_class_init,
-};
-#endif
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2256,9 +2200,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_scsi_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
-#ifdef CONFIG_VHOST_SCSI
- type_register_static(&vhost_scsi_pci_info);
-#endif
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 7f06d7f331..eb7cdbad25 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -24,16 +24,11 @@
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
-#ifdef CONFIG_VHOST_SCSI
-#include "hw/virtio/vhost-scsi.h"
-#endif
-
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
-typedef struct VHostSCSIPCI VHostSCSIPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -204,20 +199,6 @@ struct VirtIOSCSIPCI {
VirtIOSCSI vdev;
};
-#ifdef CONFIG_VHOST_SCSI
-/*
- * vhost-scsi-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VHOST_SCSI_PCI "vhost-scsi-pci"
-#define VHOST_SCSI_PCI(obj) \
- OBJECT_CHECK(VHostSCSIPCI, (obj), TYPE_VHOST_SCSI_PCI)
-
-struct VHostSCSIPCI {
- VirtIOPCIProxy parent_obj;
- VHostSCSI vdev;
-};
-#endif
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 10/16] virtio: split virtio scsi bits from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (8 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 09/16] virtio: split vhost " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:28 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
` (7 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Notice that we can't still run tests with it disabled. Both cdrom-test and
drive_del-test use virtio-scsi without checking if it is enabled.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-pci.c | 69 -----------------------
hw/virtio/virtio-pci.h | 14 -----
hw/virtio/virtio-scsi-pci.c | 106 ++++++++++++++++++++++++++++++++++++
tests/Makefile.include | 2 +-
5 files changed, 108 insertions(+), 84 deletions(-)
create mode 100644 hw/virtio/virtio-scsi-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 6e6e001449..5d59302f89 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -19,6 +19,7 @@ obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
+obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 6c42074d37..debd764523 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -22,7 +22,6 @@
#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
-#include "hw/virtio/virtio-scsi.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -1952,73 +1951,6 @@ static const TypeInfo virtio_blk_pci_info = {
.class_init = virtio_blk_pci_class_init,
};
-/* virtio-scsi-pci */
-
-static Property virtio_scsi_pci_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
- DeviceState *proxy = DEVICE(vpci_dev);
- char *bus_name;
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = vs->conf.num_queues + 3;
- }
-
- /*
- * For command line compatibility, this sets the virtio-scsi-device bus
- * name as before.
- */
- if (proxy->id) {
- bus_name = g_strdup_printf("%s.0", proxy->id);
- virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
- g_free(bus_name);
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- k->realize = virtio_scsi_pci_realize;
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = virtio_scsi_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
- pcidev_k->revision = 0x00;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void virtio_scsi_pci_instance_init(Object *obj)
-{
- VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_SCSI);
-}
-
-static const TypeInfo virtio_scsi_pci_info = {
- .name = TYPE_VIRTIO_SCSI_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOSCSIPCI),
- .instance_init = virtio_scsi_pci_instance_init,
- .class_init = virtio_scsi_pci_class_init,
-};
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2197,7 +2129,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
type_register_static(&virtio_blk_pci_info);
- type_register_static(&virtio_scsi_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
}
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index eb7cdbad25..5e13d87110 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -19,14 +19,12 @@
#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
-#include "hw/virtio/virtio-scsi.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
-typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
@@ -187,18 +185,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
proxy->disable_modern = true;
}
-/*
- * virtio-scsi-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_SCSI_PCI "virtio-scsi-pci"
-#define VIRTIO_SCSI_PCI(obj) \
- OBJECT_CHECK(VirtIOSCSIPCI, (obj), TYPE_VIRTIO_SCSI_PCI)
-
-struct VirtIOSCSIPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOSCSI vdev;
-};
-
/*
* virtio-blk-pci: This extends VirtioPCIProxy.
*/
diff --git a/hw/virtio/virtio-scsi-pci.c b/hw/virtio/virtio-scsi-pci.c
new file mode 100644
index 0000000000..bc45b1bc32
--- /dev/null
+++ b/hw/virtio/virtio-scsi-pci.c
@@ -0,0 +1,106 @@
+/*
+ * Virtio scsi PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or
+ * (at your option) any later version. See the COPYING file in the
+ * top-level directory.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-scsi.h"
+#include "virtio-pci.h"
+
+typedef struct VirtIOSCSIPCI VirtIOSCSIPCI;
+
+/*
+ * virtio-scsi-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_SCSI_PCI "virtio-scsi-pci"
+#define VIRTIO_SCSI_PCI(obj) \
+ OBJECT_CHECK(VirtIOSCSIPCI, (obj), TYPE_VIRTIO_SCSI_PCI)
+
+struct VirtIOSCSIPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOSCSI vdev;
+};
+
+static Property virtio_scsi_pci_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
+ DeviceState *proxy = DEVICE(vpci_dev);
+ char *bus_name;
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = vs->conf.num_queues + 3;
+ }
+
+ /*
+ * For command line compatibility, this sets the virtio-scsi-device bus
+ * name as before.
+ */
+ if (proxy->id) {
+ bus_name = g_strdup_printf("%s.0", proxy->id);
+ virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
+ g_free(bus_name);
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ k->realize = virtio_scsi_pci_realize;
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = virtio_scsi_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_SCSI;
+ pcidev_k->revision = 0x00;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void virtio_scsi_pci_instance_init(Object *obj)
+{
+ VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_SCSI);
+}
+
+static const TypeInfo virtio_scsi_pci_info = {
+ .name = TYPE_VIRTIO_SCSI_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOSCSIPCI),
+ .instance_init = virtio_scsi_pci_instance_init,
+ .class_init = virtio_scsi_pci_class_init,
+};
+
+
+static void virtio_scsi_pci_register(void)
+{
+ type_register_static(&virtio_scsi_pci_info);
+}
+
+type_init(virtio_scsi_pci_register)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 89800e76ca..9b3e7d7403 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -150,7 +150,7 @@ check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF
check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
endif
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 11/16] virtio: split virtio blk bits rom virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (9 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 10/16] virtio: split virtio " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:31 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 12/16] virtio: split virtio net " Juan Quintela
` (6 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-blk-pci.c | 97 ++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 59 -----------------------
hw/virtio/virtio-pci.h | 14 ------
tests/Makefile.include | 5 +-
5 files changed, 100 insertions(+), 76 deletions(-)
create mode 100644 hw/virtio/virtio-blk-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 5d59302f89..c28b740dca 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -20,6 +20,7 @@ obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
+obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-blk-pci.c b/hw/virtio/virtio-blk-pci.c
new file mode 100644
index 0000000000..c1c41ad3f0
--- /dev/null
+++ b/hw/virtio/virtio-blk-pci.c
@@ -0,0 +1,97 @@
+/*
+ * Virtio blk PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-blk.h"
+#include "virtio-pci.h"
+#include "qapi/error.h"
+
+typedef struct VirtIOBlkPCI VirtIOBlkPCI;
+
+/*
+ * virtio-blk-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_BLK_PCI "virtio-blk-pci"
+#define VIRTIO_BLK_PCI(obj) \
+ OBJECT_CHECK(VirtIOBlkPCI, (obj), TYPE_VIRTIO_BLK_PCI)
+
+struct VirtIOBlkPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOBlock vdev;
+};
+
+static Property virtio_blk_pci_properties[] = {
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
+ DEV_NVECTORS_UNSPECIFIED),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = dev->vdev.conf.num_queues + 1;
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+
+ set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+ dc->props = virtio_blk_pci_properties;
+ k->realize = virtio_blk_pci_realize;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
+}
+
+static void virtio_blk_pci_instance_init(Object *obj)
+{
+ VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_BLK);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo virtio_blk_pci_info = {
+ .name = TYPE_VIRTIO_BLK_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOBlkPCI),
+ .instance_init = virtio_blk_pci_instance_init,
+ .class_init = virtio_blk_pci_class_init,
+};
+static void virtio_blk_pci_register(void)
+{
+ type_register_static(&virtio_blk_pci_info);
+}
+
+type_init(virtio_blk_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index debd764523..4fe71a56c8 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,7 +19,6 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
-#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/pci/pci.h"
@@ -1894,63 +1893,6 @@ static const TypeInfo virtio_pci_info = {
},
};
-/* virtio-blk-pci */
-
-static Property virtio_blk_pci_properties[] = {
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors,
- DEV_NVECTORS_UNSPECIFIED),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = dev->vdev.conf.num_queues + 1;
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-
- set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
- dc->props = virtio_blk_pci_properties;
- k->realize = virtio_blk_pci_realize;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI;
-}
-
-static void virtio_blk_pci_instance_init(Object *obj)
-{
- VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_BLK);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo virtio_blk_pci_info = {
- .name = TYPE_VIRTIO_BLK_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOBlkPCI),
- .instance_init = virtio_blk_pci_instance_init,
- .class_init = virtio_blk_pci_class_init,
-};
-
/* virtio-serial-pci */
static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
@@ -2128,7 +2070,6 @@ static void virtio_pci_register_types(void)
{
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
- type_register_static(&virtio_blk_pci_info);
type_register_static(&virtio_serial_pci_info);
type_register_static(&virtio_net_pci_info);
}
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 5e13d87110..3c9bbf9287 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -16,7 +16,6 @@
#define QEMU_VIRTIO_PCI_H
#include "hw/pci/msi.h"
-#include "hw/virtio/virtio-blk.h"
#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-bus.h"
@@ -24,7 +23,6 @@
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOBlkPCI VirtIOBlkPCI;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
@@ -185,18 +183,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
proxy->disable_modern = true;
}
-/*
- * virtio-blk-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_BLK_PCI "virtio-blk-pci"
-#define VIRTIO_BLK_PCI(obj) \
- OBJECT_CHECK(VirtIOBlkPCI, (obj), TYPE_VIRTIO_BLK_PCI)
-
-struct VirtIOBlkPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOBlock vdev;
-};
-
/*
* virtio-serial-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 9b3e7d7403..36d95fe913 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -147,8 +147,7 @@ check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
@@ -279,7 +278,7 @@ check-qtest-arm-y += tests/tmp105-test$(EXESUF)
check-qtest-arm-y += tests/pca9552-test$(EXESUF)
check-qtest-arm-y += tests/ds1338-test$(EXESUF)
check-qtest-arm-y += tests/m25p80-test$(EXESUF)
-check-qtest-arm-y += tests/virtio-blk-test$(EXESUF)
+check-qtest-arm-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF)
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 12/16] virtio: split virtio net bits rom virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (10 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:33 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 13/16] virtio: split virtio serial " Juan Quintela
` (5 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-net-pci.c | 96 ++++++++++++++++++++++++++++++++++++++
hw/virtio/virtio-pci.c | 57 ----------------------
hw/virtio/virtio-pci.h | 14 ------
tests/Makefile.include | 2 +-
5 files changed, 98 insertions(+), 72 deletions(-)
create mode 100644 hw/virtio/virtio-net-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index c28b740dca..0810553ab8 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -21,6 +21,7 @@ obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
+obj-$(CONFIG_VIRTIO_NET) += virtio-net-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c
new file mode 100644
index 0000000000..0b676f078d
--- /dev/null
+++ b/hw/virtio/virtio-net-pci.c
@@ -0,0 +1,96 @@
+/*
+ * Virtio net PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-net.h"
+#include "virtio-pci.h"
+#include "qapi/error.h"
+
+typedef struct VirtIONetPCI VirtIONetPCI;
+
+/*
+ * virtio-net-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_NET_PCI "virtio-net-pci"
+#define VIRTIO_NET_PCI(obj) \
+ OBJECT_CHECK(VirtIONetPCI, (obj), TYPE_VIRTIO_NET_PCI)
+
+struct VirtIONetPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIONet vdev;
+};
+
+static Property virtio_net_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ DeviceState *qdev = DEVICE(vpci_dev);
+ VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+
+ virtio_net_set_netclient_name(&dev->vdev, qdev->id,
+ object_get_typename(OBJECT(qdev)));
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
+ VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
+
+ k->romfile = "efi-virtio.rom";
+ k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
+ k->revision = VIRTIO_PCI_ABI_VERSION;
+ k->class_id = PCI_CLASS_NETWORK_ETHERNET;
+ set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
+ dc->props = virtio_net_properties;
+ vpciklass->realize = virtio_net_pci_realize;
+}
+
+static void virtio_net_pci_instance_init(Object *obj)
+{
+ VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_NET);
+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
+ "bootindex", &error_abort);
+}
+
+static const TypeInfo virtio_net_pci_info = {
+ .name = TYPE_VIRTIO_NET_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIONetPCI),
+ .instance_init = virtio_net_pci_instance_init,
+ .class_init = virtio_net_pci_class_init,
+};
+
+static void virtio_net_pci_register(void)
+{
+ type_register_static(&virtio_net_pci_info);
+}
+
+type_init(virtio_net_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 4fe71a56c8..cb03bfa597 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,7 +19,6 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
-#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
@@ -1966,61 +1965,6 @@ static const TypeInfo virtio_serial_pci_info = {
.class_init = virtio_serial_pci_class_init,
};
-/* virtio-net-pci */
-
-static Property virtio_net_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- DeviceState *qdev = DEVICE(vpci_dev);
- VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
-
- virtio_net_set_netclient_name(&dev->vdev, qdev->id,
- object_get_typename(OBJECT(qdev)));
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
- VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
-
- k->romfile = "efi-virtio.rom";
- k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
- k->revision = VIRTIO_PCI_ABI_VERSION;
- k->class_id = PCI_CLASS_NETWORK_ETHERNET;
- set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
- dc->props = virtio_net_properties;
- vpciklass->realize = virtio_net_pci_realize;
-}
-
-static void virtio_net_pci_instance_init(Object *obj)
-{
- VirtIONetPCI *dev = VIRTIO_NET_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_NET);
- object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev),
- "bootindex", &error_abort);
-}
-
-static const TypeInfo virtio_net_pci_info = {
- .name = TYPE_VIRTIO_NET_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIONetPCI),
- .instance_init = virtio_net_pci_instance_init,
- .class_init = virtio_net_pci_class_init,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2071,7 +2015,6 @@ static void virtio_pci_register_types(void)
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
type_register_static(&virtio_serial_pci_info);
- type_register_static(&virtio_net_pci_info);
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 3c9bbf9287..ab0c7907e4 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -16,7 +16,6 @@
#define QEMU_VIRTIO_PCI_H
#include "hw/pci/msi.h"
-#include "hw/virtio/virtio-net.h"
#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
@@ -24,7 +23,6 @@
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
typedef struct VirtIOSerialPCI VirtIOSerialPCI;
-typedef struct VirtIONetPCI VirtIONetPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -195,18 +193,6 @@ struct VirtIOSerialPCI {
VirtIOSerial vdev;
};
-/*
- * virtio-net-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_NET_PCI "virtio-net-pci"
-#define VIRTIO_NET_PCI(obj) \
- OBJECT_CHECK(VirtIONetPCI, (obj), TYPE_VIRTIO_NET_PCI)
-
-struct VirtIONetPCI {
- VirtIOPCIProxy parent_obj;
- VirtIONet vdev;
-};
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 36d95fe913..0a3878f3ab 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -145,7 +145,7 @@ check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
-check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_NET) += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BLK) += tests/virtio-blk-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 13/16] virtio: split virtio serial bits rom virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (11 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 12/16] virtio: split virtio net " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:36 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
` (4 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Virtio console and qga tests also depend on CONFIG_VIRTIO_SERIAL.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/virtio-pci.c | 75 -----------------------
hw/virtio/virtio-pci.h | 14 -----
hw/virtio/virtio-serial-pci.c | 112 ++++++++++++++++++++++++++++++++++
tests/Makefile.include | 6 +-
5 files changed, 116 insertions(+), 92 deletions(-)
create mode 100644 hw/virtio/virtio-serial-pci.c
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 0810553ab8..3d88b60d27 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -22,6 +22,7 @@ obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
obj-$(CONFIG_VIRTIO_SCSI) += virtio-scsi-pci.o
obj-$(CONFIG_VIRTIO_BLK) += virtio-blk-pci.o
obj-$(CONFIG_VIRTIO_NET) += virtio-net-pci.o
+obj-$(CONFIG_VIRTIO_SERIAL) += virtio-serial-pci.o
endif
common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index cb03bfa597..5a54b144a5 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -19,7 +19,6 @@
#include "standard-headers/linux/virtio_pci.h"
#include "hw/virtio/virtio.h"
-#include "hw/virtio/virtio-serial.h"
#include "hw/pci/pci.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
@@ -1892,79 +1891,6 @@ static const TypeInfo virtio_pci_info = {
},
};
-/* virtio-serial-pci */
-
-static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
- VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(vpci_dev);
- DeviceState *vdev = DEVICE(&dev->vdev);
- DeviceState *proxy = DEVICE(vpci_dev);
- char *bus_name;
-
- if (vpci_dev->class_code != PCI_CLASS_COMMUNICATION_OTHER &&
- vpci_dev->class_code != PCI_CLASS_DISPLAY_OTHER && /* qemu 0.10 */
- vpci_dev->class_code != PCI_CLASS_OTHERS) { /* qemu-kvm */
- vpci_dev->class_code = PCI_CLASS_COMMUNICATION_OTHER;
- }
-
- /* backwards-compatibility with machines that were created with
- DEV_NVECTORS_UNSPECIFIED */
- if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
- vpci_dev->nvectors = dev->vdev.serial.max_virtserial_ports + 1;
- }
-
- /*
- * For command line compatibility, this sets the virtio-serial-device bus
- * name as before.
- */
- if (proxy->id) {
- bus_name = g_strdup_printf("%s.0", proxy->id);
- virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
- g_free(bus_name);
- }
-
- qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
- object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static Property virtio_serial_pci_properties[] = {
- DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
- VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
- DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
- DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_serial_pci_class_init(ObjectClass *klass, void *data)
-{
- DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
- PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
- k->realize = virtio_serial_pci_realize;
- set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
- dc->props = virtio_serial_pci_properties;
- pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
- pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_CONSOLE;
- pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
- pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
-}
-
-static void virtio_serial_pci_instance_init(Object *obj)
-{
- VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(obj);
-
- virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
- TYPE_VIRTIO_SERIAL);
-}
-
-static const TypeInfo virtio_serial_pci_info = {
- .name = TYPE_VIRTIO_SERIAL_PCI,
- .parent = TYPE_VIRTIO_PCI,
- .instance_size = sizeof(VirtIOSerialPCI),
- .instance_init = virtio_serial_pci_instance_init,
- .class_init = virtio_serial_pci_class_init,
-};
-
/* virtio-pci-bus */
static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
@@ -2014,7 +1940,6 @@ static void virtio_pci_register_types(void)
{
type_register_static(&virtio_pci_bus_info);
type_register_static(&virtio_pci_info);
- type_register_static(&virtio_serial_pci_info);
}
type_init(virtio_pci_register_types)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index ab0c7907e4..59016d553b 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -16,13 +16,11 @@
#define QEMU_VIRTIO_PCI_H
#include "hw/pci/msi.h"
-#include "hw/virtio/virtio-serial.h"
#include "hw/virtio/virtio-bus.h"
#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOSerialPCI VirtIOSerialPCI;
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
@@ -181,18 +179,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
proxy->disable_modern = true;
}
-/*
- * virtio-serial-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_SERIAL_PCI "virtio-serial-pci"
-#define VIRTIO_SERIAL_PCI(obj) \
- OBJECT_CHECK(VirtIOSerialPCI, (obj), TYPE_VIRTIO_SERIAL_PCI)
-
-struct VirtIOSerialPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOSerial vdev;
-};
-
/*
* virtio-input-pci: This extends VirtioPCIProxy.
*/
diff --git a/hw/virtio/virtio-serial-pci.c b/hw/virtio/virtio-serial-pci.c
new file mode 100644
index 0000000000..acb23427ac
--- /dev/null
+++ b/hw/virtio/virtio-serial-pci.c
@@ -0,0 +1,112 @@
+/*
+ * Virtio serial PCI Bindings
+ *
+ * Copyright IBM, Corp. 2007
+ * Copyright (c) 2009 CodeSourcery
+ *
+ * Authors:
+ * Anthony Liguori <aliguori@us.ibm.com>
+ * Paul Brook <paul@codesourcery.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "hw/virtio/virtio-serial.h"
+#include "virtio-pci.h"
+
+typedef struct VirtIOSerialPCI VirtIOSerialPCI;
+
+/*
+ * virtio-serial-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_SERIAL_PCI "virtio-serial-pci"
+#define VIRTIO_SERIAL_PCI(obj) \
+ OBJECT_CHECK(VirtIOSerialPCI, (obj), TYPE_VIRTIO_SERIAL_PCI)
+
+struct VirtIOSerialPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOSerial vdev;
+};
+
+static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+ VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(vpci_dev);
+ DeviceState *vdev = DEVICE(&dev->vdev);
+ DeviceState *proxy = DEVICE(vpci_dev);
+ char *bus_name;
+
+ if (vpci_dev->class_code != PCI_CLASS_COMMUNICATION_OTHER &&
+ vpci_dev->class_code != PCI_CLASS_DISPLAY_OTHER && /* qemu 0.10 */
+ vpci_dev->class_code != PCI_CLASS_OTHERS) { /* qemu-kvm */
+ vpci_dev->class_code = PCI_CLASS_COMMUNICATION_OTHER;
+ }
+
+ /* backwards-compatibility with machines that were created with
+ DEV_NVECTORS_UNSPECIFIED */
+ if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
+ vpci_dev->nvectors = dev->vdev.serial.max_virtserial_ports + 1;
+ }
+
+ /*
+ * For command line compatibility, this sets the virtio-serial-device bus
+ * name as before.
+ */
+ if (proxy->id) {
+ bus_name = g_strdup_printf("%s.0", proxy->id);
+ virtio_device_set_child_bus_name(VIRTIO_DEVICE(vdev), bus_name);
+ g_free(bus_name);
+ }
+
+ qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+ object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static Property virtio_serial_pci_properties[] = {
+ DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+ DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0),
+ DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_serial_pci_class_init(ObjectClass *klass, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(klass);
+ VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+ PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+ k->realize = virtio_serial_pci_realize;
+ set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
+ dc->props = virtio_serial_pci_properties;
+ pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+ pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_CONSOLE;
+ pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+ pcidev_k->class_id = PCI_CLASS_COMMUNICATION_OTHER;
+}
+
+static void virtio_serial_pci_instance_init(Object *obj)
+{
+ VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(obj);
+
+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+ TYPE_VIRTIO_SERIAL);
+}
+
+static const TypeInfo virtio_serial_pci_info = {
+ .name = TYPE_VIRTIO_SERIAL_PCI,
+ .parent = TYPE_VIRTIO_PCI,
+ .instance_size = sizeof(VirtIOSerialPCI),
+ .instance_init = virtio_serial_pci_instance_init,
+ .class_init = virtio_serial_pci_class_init,
+};
+static void virtio_serial_pci_register(void)
+{
+ type_register_static(&virtio_serial_pci_info);
+}
+
+type_init(virtio_serial_pci_register)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 0a3878f3ab..d09a6af706 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -107,7 +107,7 @@ check-unit-y += tests/test-crypto-secret$(EXESUF)
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF)
check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF)
ifneq (,$(findstring qemu-ga,$(TOOLS)))
-check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF)
+check-unit-$(land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF)
endif
check-unit-y += tests/test-timed-average$(EXESUF)
check-unit-y += tests/test-util-sockets$(EXESUF)
@@ -143,7 +143,7 @@ check-qtest-generic-y += tests/cdrom-test$(EXESUF)
check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF)
-check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
+check-qtest-virtioserial-$(CONFIG_VIRTIO_SERIAL) += tests/virtio-console-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_NET) += tests/virtio-net-test$(EXESUF)
check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
@@ -153,7 +153,7 @@ check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF)
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
endif
-check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_SERIAL) += tests/virtio-serial-test$(EXESUF)
check-qtest-virtio-y += $(check-qtest-virtioserial-y)
check-qtest-pci-y += tests/e1000-test$(EXESUF)
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 14/16] virtio: split virtio gpu bits rom virtio-pci.h
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (12 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 13/16] virtio: split virtio serial " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:39 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 15/16] virtio: split virtio crypto " Juan Quintela
` (3 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/display/virtio-gpu-pci.c | 14 ++++++++++++++
hw/display/virtio-vga.c | 1 +
hw/virtio/virtio-pci.h | 14 --------------
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/hw/display/virtio-gpu-pci.c b/hw/display/virtio-gpu-pci.c
index cece4aa495..fa126cf3e4 100644
--- a/hw/display/virtio-gpu-pci.c
+++ b/hw/display/virtio-gpu-pci.c
@@ -19,6 +19,20 @@
#include "hw/virtio/virtio-pci.h"
#include "hw/virtio/virtio-gpu.h"
+typedef struct VirtIOGPUPCI VirtIOGPUPCI;
+
+/*
+ * virtio-gpu-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_GPU_PCI "virtio-gpu-pci"
+#define VIRTIO_GPU_PCI(obj) \
+ OBJECT_CHECK(VirtIOGPUPCI, (obj), TYPE_VIRTIO_GPU_PCI)
+
+struct VirtIOGPUPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOGPU vdev;
+};
+
static Property virtio_gpu_pci_properties[] = {
DEFINE_VIRTIO_GPU_PCI_PROPERTIES(VirtIOPCIProxy),
DEFINE_PROP_END_OF_LIST(),
diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c
index ab2e369b28..797994cf00 100644
--- a/hw/display/virtio-vga.c
+++ b/hw/display/virtio-vga.c
@@ -3,6 +3,7 @@
#include "hw/pci/pci.h"
#include "vga_int.h"
#include "hw/virtio/virtio-pci.h"
+#include "hw/virtio/virtio-gpu.h"
#include "qapi/error.h"
/*
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 59016d553b..91981b39f9 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -17,11 +17,9 @@
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-bus.h"
-#include "hw/virtio/virtio-gpu.h"
#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOGPUPCI VirtIOGPUPCI;
typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
/* virtio-pci-bus */
@@ -184,18 +182,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
*/
#define TYPE_VIRTIO_INPUT_PCI "virtio-input-pci"
-/*
- * virtio-gpu-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_GPU_PCI "virtio-gpu-pci"
-#define VIRTIO_GPU_PCI(obj) \
- OBJECT_CHECK(VirtIOGPUPCI, (obj), TYPE_VIRTIO_GPU_PCI)
-
-struct VirtIOGPUPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOGPU vdev;
-};
-
/*
* virtio-crypto-pci: This extends VirtioPCIProxy.
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 15/16] virtio: split virtio crypto bits rom virtio-pci.h
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (13 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:41 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
` (2 subsequent siblings)
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
hw/virtio/virtio-crypto-pci.c | 14 ++++++++++++++
hw/virtio/virtio-pci.h | 14 --------------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/hw/virtio/virtio-crypto-pci.c b/hw/virtio/virtio-crypto-pci.c
index bf64996e48..1b242d3037 100644
--- a/hw/virtio/virtio-crypto-pci.c
+++ b/hw/virtio/virtio-crypto-pci.c
@@ -19,6 +19,20 @@
#include "hw/virtio/virtio-crypto.h"
#include "qapi/error.h"
+typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
+
+/*
+ * virtio-crypto-pci: This extends VirtioPCIProxy.
+ */
+#define TYPE_VIRTIO_CRYPTO_PCI "virtio-crypto-pci"
+#define VIRTIO_CRYPTO_PCI(obj) \
+ OBJECT_CHECK(VirtIOCryptoPCI, (obj), TYPE_VIRTIO_CRYPTO_PCI)
+
+struct VirtIOCryptoPCI {
+ VirtIOPCIProxy parent_obj;
+ VirtIOCrypto vdev;
+};
+
static Property virtio_crypto_pci_properties[] = {
DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 91981b39f9..bead9e5fa5 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -17,10 +17,8 @@
#include "hw/pci/msi.h"
#include "hw/virtio/virtio-bus.h"
-#include "hw/virtio/virtio-crypto.h"
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
-typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
/* virtio-pci-bus */
@@ -182,18 +180,6 @@ static inline void virtio_pci_disable_modern(VirtIOPCIProxy *proxy)
*/
#define TYPE_VIRTIO_INPUT_PCI "virtio-input-pci"
-/*
- * virtio-crypto-pci: This extends VirtioPCIProxy.
- */
-#define TYPE_VIRTIO_CRYPTO_PCI "virtio-crypto-pci"
-#define VIRTIO_CRYPTO_PCI(obj) \
- OBJECT_CHECK(VirtIOCryptoPCI, (obj), TYPE_VIRTIO_CRYPTO_PCI)
-
-struct VirtIOCryptoPCI {
- VirtIOPCIProxy parent_obj;
- VirtIOCrypto vdev;
-};
-
/* Virtio ABI version, if we increment this, we break the guest driver. */
#define VIRTIO_PCI_ABI_VERSION 0
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (14 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 15/16] virtio: split virtio crypto " Juan Quintela
@ 2018-11-26 20:00 ` Juan Quintela
2018-11-28 20:48 ` Laurent Vivier
2018-11-27 11:38 ` [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Dr. David Alan Gilbert
2018-11-28 3:13 ` Michael S. Tsirkin
17 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-26 20:00 UTC (permalink / raw)
To: qemu-devel; +Cc: dgilbert, lvivier, peterx
Otherwise, it has no implementation.
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
default-configs/virtio.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
index 5ae4a61018..ecb4420e74 100644
--- a/default-configs/virtio.mak
+++ b/default-configs/virtio.mak
@@ -1,7 +1,7 @@
CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
CONFIG_VIRTIO=y
-CONFIG_VIRTIO_9P=y
+CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CRYPTO=y
--
2.19.1
^ permalink raw reply related [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (15 preceding siblings ...)
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
@ 2018-11-27 11:38 ` Dr. David Alan Gilbert
2018-11-28 3:13 ` Michael S. Tsirkin
17 siblings, 0 replies; 46+ messages in thread
From: Dr. David Alan Gilbert @ 2018-11-27 11:38 UTC (permalink / raw)
To: Juan Quintela, mst, stefanha; +Cc: qemu-devel, lvivier, peterx
* Juan Quintela (quintela@redhat.com) wrote:
> Hi
>
> V2:
>
> - Rebase on top of master
>
> Please review.
cc'ing in mst and Stefan; this is all virtio stuff.
Dave
> Later, Juan.
>
>
> [v1]
> From previous verision (in the middle of make check tests):
> - split also the bits of virtio-pci.h (mst suggestion)
> - add gpu, crypt and gpg bits
> - more cleanups
> - fix all the copyrights (the ones not changed have been there
> foverever)
> - be consistent with naming, vhost-* or virtio-*
>
> Please review, Juan.
>
> Juan Quintela (16):
> virtio: split vhost vsock bits from virtio-pci
> virtio: split virtio input host bits from virtio-pci
> virtio: split virtio input bits from virtio-pci
> virtio: split virtio rng bits from virtio-pci
> virtio: split virtio balloon bits from virtio-pci
> virtio: split virtio 9p bits from virtio-pci
> virtio: split vhost user blk bits from virtio-pci
> virtio: split vhost user scsi bits from virtio-pci
> virtio: split vhost scsi bits from virtio-pci
> virtio: split virtio scsi bits from virtio-pci
> virtio: split virtio blk bits rom virtio-pci
> virtio: split virtio net bits rom virtio-pci
> virtio: split virtio serial bits rom virtio-pci
> virtio: split virtio gpu bits rom virtio-pci.h
> virtio: split virtio crypto bits rom virtio-pci.h
> virtio: virtio 9p really requires CONFIG_VIRTFS to work
>
> default-configs/virtio.mak | 3 +-
> hw/display/virtio-gpu-pci.c | 14 +
> hw/display/virtio-vga.c | 1 +
> hw/virtio/Makefile.objs | 14 +-
> hw/virtio/vhost-scsi-pci.c | 95 ++++
> hw/virtio/vhost-user-blk-pci.c | 101 ++++
> hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> hw/virtio/vhost-vsock-pci.c | 82 ++++
> hw/virtio/virtio-9p-pci.c | 86 ++++
> hw/virtio/virtio-balloon-pci.c | 94 ++++
> hw/virtio/virtio-blk-pci.c | 97 ++++
> hw/virtio/virtio-crypto-pci.c | 14 +
> hw/virtio/virtio-input-host-pci.c | 45 ++
> hw/virtio/virtio-input-pci.c | 154 ++++++
> hw/virtio/virtio-net-pci.c | 96 ++++
> hw/virtio/virtio-pci.c | 783 ------------------------------
> hw/virtio/virtio-pci.h | 234 ---------
> hw/virtio/virtio-rng-pci.c | 86 ++++
> hw/virtio/virtio-scsi-pci.c | 106 ++++
> hw/virtio/virtio-serial-pci.c | 112 +++++
> tests/Makefile.include | 18 +-
> 21 files changed, 1308 insertions(+), 1028 deletions(-)
> create mode 100644 hw/virtio/vhost-scsi-pci.c
> create mode 100644 hw/virtio/vhost-user-blk-pci.c
> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> create mode 100644 hw/virtio/vhost-vsock-pci.c
> create mode 100644 hw/virtio/virtio-9p-pci.c
> create mode 100644 hw/virtio/virtio-balloon-pci.c
> create mode 100644 hw/virtio/virtio-blk-pci.c
> create mode 100644 hw/virtio/virtio-input-host-pci.c
> create mode 100644 hw/virtio/virtio-input-pci.c
> create mode 100644 hw/virtio/virtio-net-pci.c
> create mode 100644 hw/virtio/virtio-rng-pci.c
> create mode 100644 hw/virtio/virtio-scsi-pci.c
> create mode 100644 hw/virtio/virtio-serial-pci.c
>
> --
> 2.19.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
` (16 preceding siblings ...)
2018-11-27 11:38 ` [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Dr. David Alan Gilbert
@ 2018-11-28 3:13 ` Michael S. Tsirkin
2018-11-28 7:46 ` Juan Quintela
17 siblings, 1 reply; 46+ messages in thread
From: Michael S. Tsirkin @ 2018-11-28 3:13 UTC (permalink / raw)
To: Juan Quintela; +Cc: qemu-devel, lvivier, dgilbert, peterx
On Mon, Nov 26, 2018 at 08:59:53PM +0100, Juan Quintela wrote:
> Hi
>
> V2:
>
> - Rebase on top of master
>
> Please review.
>
> Later, Juan.
And just making sure the point is so that one
can disable virtio-pci and still build virtio?
And the point of that is mostly as a cleanup on
generic principles, right? Or is there a project that
actually wants to do it?
>
> [v1]
> >From previous verision (in the middle of make check tests):
> - split also the bits of virtio-pci.h (mst suggestion)
> - add gpu, crypt and gpg bits
> - more cleanups
> - fix all the copyrights (the ones not changed have been there
> foverever)
> - be consistent with naming, vhost-* or virtio-*
>
> Please review, Juan.
>
> Juan Quintela (16):
> virtio: split vhost vsock bits from virtio-pci
> virtio: split virtio input host bits from virtio-pci
> virtio: split virtio input bits from virtio-pci
> virtio: split virtio rng bits from virtio-pci
> virtio: split virtio balloon bits from virtio-pci
> virtio: split virtio 9p bits from virtio-pci
> virtio: split vhost user blk bits from virtio-pci
> virtio: split vhost user scsi bits from virtio-pci
> virtio: split vhost scsi bits from virtio-pci
> virtio: split virtio scsi bits from virtio-pci
> virtio: split virtio blk bits rom virtio-pci
> virtio: split virtio net bits rom virtio-pci
> virtio: split virtio serial bits rom virtio-pci
> virtio: split virtio gpu bits rom virtio-pci.h
> virtio: split virtio crypto bits rom virtio-pci.h
> virtio: virtio 9p really requires CONFIG_VIRTFS to work
>
> default-configs/virtio.mak | 3 +-
> hw/display/virtio-gpu-pci.c | 14 +
> hw/display/virtio-vga.c | 1 +
> hw/virtio/Makefile.objs | 14 +-
> hw/virtio/vhost-scsi-pci.c | 95 ++++
> hw/virtio/vhost-user-blk-pci.c | 101 ++++
> hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> hw/virtio/vhost-vsock-pci.c | 82 ++++
> hw/virtio/virtio-9p-pci.c | 86 ++++
> hw/virtio/virtio-balloon-pci.c | 94 ++++
> hw/virtio/virtio-blk-pci.c | 97 ++++
> hw/virtio/virtio-crypto-pci.c | 14 +
> hw/virtio/virtio-input-host-pci.c | 45 ++
> hw/virtio/virtio-input-pci.c | 154 ++++++
> hw/virtio/virtio-net-pci.c | 96 ++++
> hw/virtio/virtio-pci.c | 783 ------------------------------
> hw/virtio/virtio-pci.h | 234 ---------
> hw/virtio/virtio-rng-pci.c | 86 ++++
> hw/virtio/virtio-scsi-pci.c | 106 ++++
> hw/virtio/virtio-serial-pci.c | 112 +++++
> tests/Makefile.include | 18 +-
> 21 files changed, 1308 insertions(+), 1028 deletions(-)
> create mode 100644 hw/virtio/vhost-scsi-pci.c
> create mode 100644 hw/virtio/vhost-user-blk-pci.c
> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> create mode 100644 hw/virtio/vhost-vsock-pci.c
> create mode 100644 hw/virtio/virtio-9p-pci.c
> create mode 100644 hw/virtio/virtio-balloon-pci.c
> create mode 100644 hw/virtio/virtio-blk-pci.c
> create mode 100644 hw/virtio/virtio-input-host-pci.c
> create mode 100644 hw/virtio/virtio-input-pci.c
> create mode 100644 hw/virtio/virtio-net-pci.c
> create mode 100644 hw/virtio/virtio-rng-pci.c
> create mode 100644 hw/virtio/virtio-scsi-pci.c
> create mode 100644 hw/virtio/virtio-serial-pci.c
>
> --
> 2.19.1
>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci
2018-11-28 3:13 ` Michael S. Tsirkin
@ 2018-11-28 7:46 ` Juan Quintela
2018-11-28 15:16 ` Michael S. Tsirkin
0 siblings, 1 reply; 46+ messages in thread
From: Juan Quintela @ 2018-11-28 7:46 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: qemu-devel, lvivier, dgilbert, peterx
"Michael S. Tsirkin" <mst@redhat.com> wrote:
> On Mon, Nov 26, 2018 at 08:59:53PM +0100, Juan Quintela wrote:
>> Hi
>>
>> V2:
>>
>> - Rebase on top of master
>>
>> Please review.
>>
>> Later, Juan.
>
> And just making sure the point is so that one
> can disable virtio-pci and still build virtio?
>
> And the point of that is mostly as a cleanup on
> generic principles, right? Or is there a project that
> actually wants to do it?
This allows "make check" to work with them disabled. Without this
changes, introspection fails, because we have the "name" (kind of)
"virtio-pci-blk", but not the real virtio device, so it tries to use it
while it is not there. See the equivalent change for virtio-ccw-*.
Thanks, Juan.
PD. Without this change, you can build a qemu with virtio devices
disabled (i.e. not compiled in), but it fails "make check". With
the changes, it also works for "make check".
>
>>
>> [v1]
>> >From previous verision (in the middle of make check tests):
>> - split also the bits of virtio-pci.h (mst suggestion)
>> - add gpu, crypt and gpg bits
>> - more cleanups
>> - fix all the copyrights (the ones not changed have been there
>> foverever)
>> - be consistent with naming, vhost-* or virtio-*
>>
>> Please review, Juan.
>>
>> Juan Quintela (16):
>> virtio: split vhost vsock bits from virtio-pci
>> virtio: split virtio input host bits from virtio-pci
>> virtio: split virtio input bits from virtio-pci
>> virtio: split virtio rng bits from virtio-pci
>> virtio: split virtio balloon bits from virtio-pci
>> virtio: split virtio 9p bits from virtio-pci
>> virtio: split vhost user blk bits from virtio-pci
>> virtio: split vhost user scsi bits from virtio-pci
>> virtio: split vhost scsi bits from virtio-pci
>> virtio: split virtio scsi bits from virtio-pci
>> virtio: split virtio blk bits rom virtio-pci
>> virtio: split virtio net bits rom virtio-pci
>> virtio: split virtio serial bits rom virtio-pci
>> virtio: split virtio gpu bits rom virtio-pci.h
>> virtio: split virtio crypto bits rom virtio-pci.h
>> virtio: virtio 9p really requires CONFIG_VIRTFS to work
>>
>> default-configs/virtio.mak | 3 +-
>> hw/display/virtio-gpu-pci.c | 14 +
>> hw/display/virtio-vga.c | 1 +
>> hw/virtio/Makefile.objs | 14 +-
>> hw/virtio/vhost-scsi-pci.c | 95 ++++
>> hw/virtio/vhost-user-blk-pci.c | 101 ++++
>> hw/virtio/vhost-user-scsi-pci.c | 101 ++++
>> hw/virtio/vhost-vsock-pci.c | 82 ++++
>> hw/virtio/virtio-9p-pci.c | 86 ++++
>> hw/virtio/virtio-balloon-pci.c | 94 ++++
>> hw/virtio/virtio-blk-pci.c | 97 ++++
>> hw/virtio/virtio-crypto-pci.c | 14 +
>> hw/virtio/virtio-input-host-pci.c | 45 ++
>> hw/virtio/virtio-input-pci.c | 154 ++++++
>> hw/virtio/virtio-net-pci.c | 96 ++++
>> hw/virtio/virtio-pci.c | 783 ------------------------------
>> hw/virtio/virtio-pci.h | 234 ---------
>> hw/virtio/virtio-rng-pci.c | 86 ++++
>> hw/virtio/virtio-scsi-pci.c | 106 ++++
>> hw/virtio/virtio-serial-pci.c | 112 +++++
>> tests/Makefile.include | 18 +-
>> 21 files changed, 1308 insertions(+), 1028 deletions(-)
>> create mode 100644 hw/virtio/vhost-scsi-pci.c
>> create mode 100644 hw/virtio/vhost-user-blk-pci.c
>> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
>> create mode 100644 hw/virtio/vhost-vsock-pci.c
>> create mode 100644 hw/virtio/virtio-9p-pci.c
>> create mode 100644 hw/virtio/virtio-balloon-pci.c
>> create mode 100644 hw/virtio/virtio-blk-pci.c
>> create mode 100644 hw/virtio/virtio-input-host-pci.c
>> create mode 100644 hw/virtio/virtio-input-pci.c
>> create mode 100644 hw/virtio/virtio-net-pci.c
>> create mode 100644 hw/virtio/virtio-rng-pci.c
>> create mode 100644 hw/virtio/virtio-scsi-pci.c
>> create mode 100644 hw/virtio/virtio-serial-pci.c
>>
>> --
>> 2.19.1
>>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci
2018-11-28 7:46 ` Juan Quintela
@ 2018-11-28 15:16 ` Michael S. Tsirkin
2018-11-29 13:46 ` Juan Quintela
0 siblings, 1 reply; 46+ messages in thread
From: Michael S. Tsirkin @ 2018-11-28 15:16 UTC (permalink / raw)
To: Juan Quintela; +Cc: qemu-devel, lvivier, dgilbert, peterx
On Wed, Nov 28, 2018 at 08:46:15AM +0100, Juan Quintela wrote:
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > On Mon, Nov 26, 2018 at 08:59:53PM +0100, Juan Quintela wrote:
> >> Hi
> >>
> >> V2:
> >>
> >> - Rebase on top of master
> >>
> >> Please review.
> >>
> >> Later, Juan.
> >
> > And just making sure the point is so that one
> > can disable virtio-pci and still build virtio?
> >
> > And the point of that is mostly as a cleanup on
> > generic principles, right? Or is there a project that
> > actually wants to do it?
>
> This allows "make check" to work with them disabled. Without this
> changes, introspection fails, because we have the "name" (kind of)
> "virtio-pci-blk", but not the real virtio device, so it tries to use it
> while it is not there. See the equivalent change for virtio-ccw-*.
>
> Thanks, Juan.
>
> PD. Without this change, you can build a qemu with virtio devices
> disabled (i.e. not compiled in), but it fails "make check". With
> the changes, it also works for "make check".
And just to complete the picture the point of that is I guess enabling
testing of random configs?
>
> >
> >>
> >> [v1]
> >> >From previous verision (in the middle of make check tests):
> >> - split also the bits of virtio-pci.h (mst suggestion)
> >> - add gpu, crypt and gpg bits
> >> - more cleanups
> >> - fix all the copyrights (the ones not changed have been there
> >> foverever)
> >> - be consistent with naming, vhost-* or virtio-*
> >>
> >> Please review, Juan.
> >>
> >> Juan Quintela (16):
> >> virtio: split vhost vsock bits from virtio-pci
> >> virtio: split virtio input host bits from virtio-pci
> >> virtio: split virtio input bits from virtio-pci
> >> virtio: split virtio rng bits from virtio-pci
> >> virtio: split virtio balloon bits from virtio-pci
> >> virtio: split virtio 9p bits from virtio-pci
> >> virtio: split vhost user blk bits from virtio-pci
> >> virtio: split vhost user scsi bits from virtio-pci
> >> virtio: split vhost scsi bits from virtio-pci
> >> virtio: split virtio scsi bits from virtio-pci
> >> virtio: split virtio blk bits rom virtio-pci
> >> virtio: split virtio net bits rom virtio-pci
> >> virtio: split virtio serial bits rom virtio-pci
> >> virtio: split virtio gpu bits rom virtio-pci.h
> >> virtio: split virtio crypto bits rom virtio-pci.h
> >> virtio: virtio 9p really requires CONFIG_VIRTFS to work
> >>
> >> default-configs/virtio.mak | 3 +-
> >> hw/display/virtio-gpu-pci.c | 14 +
> >> hw/display/virtio-vga.c | 1 +
> >> hw/virtio/Makefile.objs | 14 +-
> >> hw/virtio/vhost-scsi-pci.c | 95 ++++
> >> hw/virtio/vhost-user-blk-pci.c | 101 ++++
> >> hw/virtio/vhost-user-scsi-pci.c | 101 ++++
> >> hw/virtio/vhost-vsock-pci.c | 82 ++++
> >> hw/virtio/virtio-9p-pci.c | 86 ++++
> >> hw/virtio/virtio-balloon-pci.c | 94 ++++
> >> hw/virtio/virtio-blk-pci.c | 97 ++++
> >> hw/virtio/virtio-crypto-pci.c | 14 +
> >> hw/virtio/virtio-input-host-pci.c | 45 ++
> >> hw/virtio/virtio-input-pci.c | 154 ++++++
> >> hw/virtio/virtio-net-pci.c | 96 ++++
> >> hw/virtio/virtio-pci.c | 783 ------------------------------
> >> hw/virtio/virtio-pci.h | 234 ---------
> >> hw/virtio/virtio-rng-pci.c | 86 ++++
> >> hw/virtio/virtio-scsi-pci.c | 106 ++++
> >> hw/virtio/virtio-serial-pci.c | 112 +++++
> >> tests/Makefile.include | 18 +-
> >> 21 files changed, 1308 insertions(+), 1028 deletions(-)
> >> create mode 100644 hw/virtio/vhost-scsi-pci.c
> >> create mode 100644 hw/virtio/vhost-user-blk-pci.c
> >> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
> >> create mode 100644 hw/virtio/vhost-vsock-pci.c
> >> create mode 100644 hw/virtio/virtio-9p-pci.c
> >> create mode 100644 hw/virtio/virtio-balloon-pci.c
> >> create mode 100644 hw/virtio/virtio-blk-pci.c
> >> create mode 100644 hw/virtio/virtio-input-host-pci.c
> >> create mode 100644 hw/virtio/virtio-input-pci.c
> >> create mode 100644 hw/virtio/virtio-net-pci.c
> >> create mode 100644 hw/virtio/virtio-rng-pci.c
> >> create mode 100644 hw/virtio/virtio-scsi-pci.c
> >> create mode 100644 hw/virtio/virtio-serial-pci.c
> >>
> >> --
> >> 2.19.1
> >>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits " Juan Quintela
@ 2018-11-28 17:33 ` Laurent Vivier
2018-11-29 6:30 ` Thomas Huth
1 sibling, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 17:33 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Updated copyright info
> Also split virtio-pci.h bits
> ---
> hw/virtio/Makefile.objs | 2 +-
> hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 51 -----------------------
> hw/virtio/virtio-pci.h | 18 --------
> 4 files changed, 83 insertions(+), 70 deletions(-)
> create mode 100644 hw/virtio/vhost-vsock-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host " Juan Quintela
@ 2018-11-28 18:00 ` Laurent Vivier
2018-12-12 17:43 ` Juan Quintela
2018-11-28 18:21 ` Laurent Vivier
1 sibling, 1 reply; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 18:00 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> default-configs/virtio.mak | 1 +
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-input-host-pci.c | 45 +++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 20 --------------
> hw/virtio/virtio-pci.h | 14 ----------
> 5 files changed, 47 insertions(+), 34 deletions(-)
> create mode 100644 hw/virtio/virtio-input-host-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
You should add a note in the commit message you have renamed
virtio_host_initfn and virtio_host_pci_info to virtio_input_host_initfn
and virtio_input_host_info.
Thanks,
Laurent
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 03/16] virtio: split virtio input bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 03/16] virtio: split virtio input " Juan Quintela
@ 2018-11-28 18:20 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 18:20 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx, Gerd Hoffmann
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-input-pci.c | 154 +++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 113 -------------------------
> hw/virtio/virtio-pci.h | 22 -----
> 4 files changed, 155 insertions(+), 135 deletions(-)
> create mode 100644 hw/virtio/virtio-input-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
CC: Gerd
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host " Juan Quintela
2018-11-28 18:00 ` Laurent Vivier
@ 2018-11-28 18:21 ` Laurent Vivier
1 sibling, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 18:21 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx, Gerd Hoffmann
CC: Gerd
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> default-configs/virtio.mak | 1 +
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-input-host-pci.c | 45 +++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 20 --------------
> hw/virtio/virtio-pci.h | 14 ----------
> 5 files changed, 47 insertions(+), 34 deletions(-)
> create mode 100644 hw/virtio/virtio-input-host-pci.c
>
> diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
> index 1304849018..5ae4a61018 100644
> --- a/default-configs/virtio.mak
> +++ b/default-configs/virtio.mak
> @@ -12,3 +12,4 @@ CONFIG_VIRTIO_RNG=y
> CONFIG_SCSI=y
> CONFIG_VIRTIO_SCSI=y
> CONFIG_VIRTIO_SERIAL=y
> +CONFIG_VIRTIO_INPUT_HOST=$(CONFIG_LINUX)
> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> index 4fbf7de84b..685ae1d866 100644
> --- a/hw/virtio/Makefile.objs
> +++ b/hw/virtio/Makefile.objs
> @@ -11,6 +11,7 @@ obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-p
>
> obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
> obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
> +obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
> endif
>
> common-obj-$(call lnot,$(call land,$(CONFIG_VIRTIO),$(CONFIG_LINUX))) += vhost-stub.o
> diff --git a/hw/virtio/virtio-input-host-pci.c b/hw/virtio/virtio-input-host-pci.c
> new file mode 100644
> index 0000000000..4048e2f01e
> --- /dev/null
> +++ b/hw/virtio/virtio-input-host-pci.c
> @@ -0,0 +1,45 @@
> +/*
> + * Virtio input host PCI Bindings
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or
> + * (at your option) any later version. See the COPYING file in the
> + * top-level directory.
> + */
> +
> +#include "qemu/osdep.h"
> +
> +#include "virtio-pci.h"
> +#include "hw/virtio/virtio-input.h"
> +
> +typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
> +
> +#define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
> +#define VIRTIO_INPUT_HOST_PCI(obj) \
> + OBJECT_CHECK(VirtIOInputHostPCI, (obj), TYPE_VIRTIO_INPUT_HOST_PCI)
> +
> +struct VirtIOInputHostPCI {
> + VirtIOPCIProxy parent_obj;
> + VirtIOInputHost vdev;
> +};
> +
> +static void virtio_input_host_initfn(Object *obj)
> +{
> + VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
> +
> + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> + TYPE_VIRTIO_INPUT_HOST);
> +}
> +
> +static const TypeInfo virtio_input_host_pci_info = {
> + .name = TYPE_VIRTIO_INPUT_HOST_PCI,
> + .parent = TYPE_VIRTIO_INPUT_PCI,
> + .instance_size = sizeof(VirtIOInputHostPCI),
> + .instance_init = virtio_input_host_initfn,
> +};
> +
> +static void virtio_input_host_pci_register(void)
> +{
> + type_register_static(&virtio_input_host_pci_info);
> +}
> +
> +type_init(virtio_input_host_pci_register)
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 56b39a3699..97e40da9e8 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -2580,23 +2580,6 @@ static const TypeInfo virtio_tablet_pci_info = {
> .instance_init = virtio_tablet_initfn,
> };
>
> -#ifdef CONFIG_LINUX
> -static void virtio_host_initfn(Object *obj)
> -{
> - VirtIOInputHostPCI *dev = VIRTIO_INPUT_HOST_PCI(obj);
> -
> - virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
> - TYPE_VIRTIO_INPUT_HOST);
> -}
> -
> -static const TypeInfo virtio_host_pci_info = {
> - .name = TYPE_VIRTIO_INPUT_HOST_PCI,
> - .parent = TYPE_VIRTIO_INPUT_PCI,
> - .instance_size = sizeof(VirtIOInputHostPCI),
> - .instance_init = virtio_host_initfn,
> -};
> -#endif
> -
> /* virtio-pci-bus */
>
> static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size,
> @@ -2650,9 +2633,6 @@ static void virtio_pci_register_types(void)
> type_register_static(&virtio_keyboard_pci_info);
> type_register_static(&virtio_mouse_pci_info);
> type_register_static(&virtio_tablet_pci_info);
> -#ifdef CONFIG_LINUX
> - type_register_static(&virtio_host_pci_info);
> -#endif
> type_register_static(&virtio_pci_bus_info);
> type_register_static(&virtio_pci_info);
> #ifdef CONFIG_VIRTFS
> diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
> index 25d225bc7d..cf4cbecfab 100644
> --- a/hw/virtio/virtio-pci.h
> +++ b/hw/virtio/virtio-pci.h
> @@ -50,7 +50,6 @@ typedef struct VHostUserBlkPCI VHostUserBlkPCI;
> typedef struct VirtIORngPCI VirtIORngPCI;
> typedef struct VirtIOInputPCI VirtIOInputPCI;
> typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
> -typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
> typedef struct VirtIOGPUPCI VirtIOGPUPCI;
> typedef struct VirtIOCryptoPCI VirtIOCryptoPCI;
>
> @@ -359,19 +358,6 @@ struct VirtIOInputHIDPCI {
> VirtIOInputHID vdev;
> };
>
> -#ifdef CONFIG_LINUX
> -
> -#define TYPE_VIRTIO_INPUT_HOST_PCI "virtio-input-host-pci"
> -#define VIRTIO_INPUT_HOST_PCI(obj) \
> - OBJECT_CHECK(VirtIOInputHostPCI, (obj), TYPE_VIRTIO_INPUT_HOST_PCI)
> -
> -struct VirtIOInputHostPCI {
> - VirtIOPCIProxy parent_obj;
> - VirtIOInputHost vdev;
> -};
> -
> -#endif
> -
> /*
> * virtio-gpu-pci: This extends VirtioPCIProxy.
> */
>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng " Juan Quintela
@ 2018-11-28 20:06 ` Laurent Vivier
2018-12-12 17:43 ` Juan Quintela
0 siblings, 1 reply; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:06 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Remove the "contributions after" clause. This is based on
>
> commit 59ccd20a9ac719cff82180429458728f03ec612f
> Author: KONRAD Frederic <fred.konrad@greensocs.com>
> Date: Wed Apr 24 10:07:56 2013 +0200
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-pci.c | 52 -----------------------
> hw/virtio/virtio-pci.h | 14 -------
> hw/virtio/virtio-rng-pci.c | 86 ++++++++++++++++++++++++++++++++++++++
> tests/Makefile.include | 1 +
> 5 files changed, 88 insertions(+), 66 deletions(-)
> create mode 100644 hw/virtio/virtio-rng-pci.c
...
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index fb0b449c02..e8235890ec 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -149,6 +149,7 @@ check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
> check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
> check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
> check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
> +check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
I think you should remove the line just above.
except that:
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 05/16] virtio: split virtio balloon bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 05/16] virtio: split virtio balloon " Juan Quintela
@ 2018-11-28 20:09 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:09 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-balloon-pci.c | 94 ++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 58 ---------------------
> hw/virtio/virtio-pci.h | 14 -----
> tests/Makefile.include | 2 +-
> 5 files changed, 96 insertions(+), 73 deletions(-)
> create mode 100644 hw/virtio/virtio-balloon-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p " Juan Quintela
@ 2018-11-28 20:15 ` Laurent Vivier
2018-12-12 17:44 ` Juan Quintela
0 siblings, 1 reply; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:15 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-9p-pci.c | 86 +++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 52 -----------------------
> hw/virtio/virtio-pci.h | 20 ---------
> 4 files changed, 87 insertions(+), 72 deletions(-)
> create mode 100644 hw/virtio/virtio-9p-pci.c
>
And what about tests/virtio-9p-test ?
except that:
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 07/16] virtio: split vhost user blk bits from virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 07/16] virtio: split vhost user blk " Juan Quintela
@ 2018-11-28 20:21 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:21 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/vhost-user-blk-pci.c | 101 +++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 60 --------------------
> hw/virtio/virtio-pci.h | 18 ------
> 4 files changed, 102 insertions(+), 78 deletions(-)
> create mode 100644 hw/virtio/vhost-user-blk-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 08/16] virtio: split vhost user scsi bits from virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 08/16] virtio: split vhost user scsi " Juan Quintela
@ 2018-11-28 20:23 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:23 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/vhost-user-scsi-pci.c | 101 ++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 58 ------------------
> hw/virtio/virtio-pci.h | 11 ----
> 4 files changed, 102 insertions(+), 69 deletions(-)
> create mode 100644 hw/virtio/vhost-user-scsi-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 09/16] virtio: split vhost scsi bits from virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 09/16] virtio: split vhost " Juan Quintela
@ 2018-11-28 20:25 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:25 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/vhost-scsi-pci.c | 95 ++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 59 -----------------------
> hw/virtio/virtio-pci.h | 19 --------
> 4 files changed, 96 insertions(+), 78 deletions(-)
> create mode 100644 hw/virtio/vhost-scsi-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 10/16] virtio: split virtio scsi bits from virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 10/16] virtio: split virtio " Juan Quintela
@ 2018-11-28 20:28 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:28 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Notice that we can't still run tests with it disabled. Both cdrom-test and
> drive_del-test use virtio-scsi without checking if it is enabled.
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-pci.c | 69 -----------------------
> hw/virtio/virtio-pci.h | 14 -----
> hw/virtio/virtio-scsi-pci.c | 106 ++++++++++++++++++++++++++++++++++++
> tests/Makefile.include | 2 +-
> 5 files changed, 108 insertions(+), 84 deletions(-)
> create mode 100644 hw/virtio/virtio-scsi-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 11/16] virtio: split virtio blk bits rom virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
@ 2018-11-28 20:31 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:31 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-blk-pci.c | 97 ++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 59 -----------------------
> hw/virtio/virtio-pci.h | 14 ------
> tests/Makefile.include | 5 +-
> 5 files changed, 100 insertions(+), 76 deletions(-)
> create mode 100644 hw/virtio/virtio-blk-pci.c
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 9b3e7d7403..36d95fe913 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -147,8 +147,7 @@ check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF)
>
> check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
> check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF)
> -check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
> -check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
This one (virtio-rng-test) should be part of PATCH 04/16
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 12/16] virtio: split virtio net bits rom virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 12/16] virtio: split virtio net " Juan Quintela
@ 2018-11-28 20:33 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:33 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-net-pci.c | 96 ++++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 57 ----------------------
> hw/virtio/virtio-pci.h | 14 ------
> tests/Makefile.include | 2 +-
> 5 files changed, 98 insertions(+), 72 deletions(-)
> create mode 100644 hw/virtio/virtio-net-pci.c
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 13/16] virtio: split virtio serial bits rom virtio-pci
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 13/16] virtio: split virtio serial " Juan Quintela
@ 2018-11-28 20:36 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:36 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Virtio console and qga tests also depend on CONFIG_VIRTIO_SERIAL.
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/Makefile.objs | 1 +
> hw/virtio/virtio-pci.c | 75 -----------------------
> hw/virtio/virtio-pci.h | 14 -----
> hw/virtio/virtio-serial-pci.c | 112 ++++++++++++++++++++++++++++++++++
> tests/Makefile.include | 6 +-
> 5 files changed, 116 insertions(+), 92 deletions(-)
> create mode 100644 hw/virtio/virtio-serial-pci.c
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 14/16] virtio: split virtio gpu bits rom virtio-pci.h
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
@ 2018-11-28 20:39 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:39 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/display/virtio-gpu-pci.c | 14 ++++++++++++++
> hw/display/virtio-vga.c | 1 +
> hw/virtio/virtio-pci.h | 14 --------------
> 3 files changed, 15 insertions(+), 14 deletions(-)
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 15/16] virtio: split virtio crypto bits rom virtio-pci.h
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 15/16] virtio: split virtio crypto " Juan Quintela
@ 2018-11-28 20:41 ` Laurent Vivier
0 siblings, 0 replies; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:41 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> hw/virtio/virtio-crypto-pci.c | 14 ++++++++++++++
> hw/virtio/virtio-pci.h | 14 --------------
> 2 files changed, 14 insertions(+), 14 deletions(-)
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
@ 2018-11-28 20:48 ` Laurent Vivier
2018-12-13 11:44 ` Juan Quintela
0 siblings, 1 reply; 46+ messages in thread
From: Laurent Vivier @ 2018-11-28 20:48 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: dgilbert, peterx
On 26/11/2018 21:00, Juan Quintela wrote:
> Otherwise, it has no implementation.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> default-configs/virtio.mak | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
> index 5ae4a61018..ecb4420e74 100644
> --- a/default-configs/virtio.mak
> +++ b/default-configs/virtio.mak
> @@ -1,7 +1,7 @@
> CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
> CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
> CONFIG_VIRTIO=y
> -CONFIG_VIRTIO_9P=y
> +CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
> CONFIG_VIRTIO_BALLOON=y
> CONFIG_VIRTIO_BLK=y
> CONFIG_VIRTIO_CRYPTO=y
>
I think you should also replace "#ifdef CONFIG_VIRTFS" by "#ifdef
CONFIG_VIRTIO_9P" in:
hw/s390x/virtio-ccw.h
include/hw/xen/xen_backend.h
hw/xen/xen_backend.c
Thanks,
Laurent
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits from virtio-pci
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits " Juan Quintela
2018-11-28 17:33 ` Laurent Vivier
@ 2018-11-29 6:30 ` Thomas Huth
2018-11-29 6:32 ` Thomas Huth
1 sibling, 1 reply; 46+ messages in thread
From: Thomas Huth @ 2018-11-29 6:30 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: lvivier, dgilbert, peterx, Michael S . Tsirkin
On 2018-11-26 20:59, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
>
> ---
>
> Updated copyright info
> Also split virtio-pci.h bits
> ---
> hw/virtio/Makefile.objs | 2 +-
> hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
> hw/virtio/virtio-pci.c | 51 -----------------------
> hw/virtio/virtio-pci.h | 18 --------
> 4 files changed, 83 insertions(+), 70 deletions(-)
> create mode 100644 hw/virtio/vhost-vsock-pci.c
>
> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
> index 1b2799cfd8..4fbf7de84b 100644
> --- a/hw/virtio/Makefile.objs
> +++ b/hw/virtio/Makefile.objs
> @@ -10,7 +10,7 @@ obj-$(CONFIG_VIRTIO_CRYPTO) += virtio-crypto.o
> obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-pci.o
>
> obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
> -obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
> +obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
Please change this into:
obj-$(call land,$(CONFIG_VHOST_VSOCK),$(CONFIG_VIRTIO_PCI)) += vhost-vsock-pci.o
Rationale: There could be targets that don't use virtio-pci (but virtio-mmio or
virtio-ccw), and without this, the PCI devices are suddenly included while they
were not included before.
Same change in the other patches of this series, too, please.
Thomas
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits from virtio-pci
2018-11-29 6:30 ` Thomas Huth
@ 2018-11-29 6:32 ` Thomas Huth
2018-11-30 8:56 ` Juan Quintela
0 siblings, 1 reply; 46+ messages in thread
From: Thomas Huth @ 2018-11-29 6:32 UTC (permalink / raw)
To: Juan Quintela, qemu-devel; +Cc: lvivier, dgilbert, peterx, Michael S . Tsirkin
On 2018-11-29 07:30, Thomas Huth wrote:
> On 2018-11-26 20:59, Juan Quintela wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>>
>> ---
>>
>> Updated copyright info
>> Also split virtio-pci.h bits
>> ---
>> hw/virtio/Makefile.objs | 2 +-
>> hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
>> hw/virtio/virtio-pci.c | 51 -----------------------
>> hw/virtio/virtio-pci.h | 18 --------
>> 4 files changed, 83 insertions(+), 70 deletions(-)
>> create mode 100644 hw/virtio/vhost-vsock-pci.c
>>
>> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
>> index 1b2799cfd8..4fbf7de84b 100644
>> --- a/hw/virtio/Makefile.objs
>> +++ b/hw/virtio/Makefile.objs
>> @@ -10,7 +10,7 @@ obj-$(CONFIG_VIRTIO_CRYPTO) += virtio-crypto.o
>> obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) += virtio-crypto-pci.o
>>
>> obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
>> -obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
>> +obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
>
> Please change this into:
>
> obj-$(call land,$(CONFIG_VHOST_VSOCK),$(CONFIG_VIRTIO_PCI)) += vhost-vsock-pci.o
... or alternatively, wrap the new lines in a "ifeq
($(CONFIG_VIRTIO_PCI),y)" block, that's maybe easier.
Thomas
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci
2018-11-28 15:16 ` Michael S. Tsirkin
@ 2018-11-29 13:46 ` Juan Quintela
0 siblings, 0 replies; 46+ messages in thread
From: Juan Quintela @ 2018-11-29 13:46 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: qemu-devel, lvivier, dgilbert, peterx
"Michael S. Tsirkin" <mst@redhat.com> wrote:
> On Wed, Nov 28, 2018 at 08:46:15AM +0100, Juan Quintela wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> wrote:
>> > On Mon, Nov 26, 2018 at 08:59:53PM +0100, Juan Quintela wrote:
>> >> Hi
>> >>
>> >> V2:
>> >>
>> >> - Rebase on top of master
>> >>
>> >> Please review.
>> >>
>> >> Later, Juan.
>> >
>> > And just making sure the point is so that one
>> > can disable virtio-pci and still build virtio?
>> >
>> > And the point of that is mostly as a cleanup on
>> > generic principles, right? Or is there a project that
>> > actually wants to do it?
>>
>> This allows "make check" to work with them disabled. Without this
>> changes, introspection fails, because we have the "name" (kind of)
>> "virtio-pci-blk", but not the real virtio device, so it tries to use it
>> while it is not there. See the equivalent change for virtio-ccw-*.
>>
>> Thanks, Juan.
>>
>> PD. Without this change, you can build a qemu with virtio devices
>> disabled (i.e. not compiled in), but it fails "make check". With
>> the changes, it also works for "make check".
>
> And just to complete the picture the point of that is I guess enabling
> testing of random configs?
Not yet.
But for developing, I try _not_ to compile the bits that I am not
using. Here I just went for being general. After this patches, you can
disable all CONFIG_VIRTIO_* stuff, and "make check" still works.
(Ok CONFIG_VIRTIO_GPU/VGA can't be disable, it needs changes inside the
tests themselves).
Later, Juan.
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits from virtio-pci
2018-11-29 6:32 ` Thomas Huth
@ 2018-11-30 8:56 ` Juan Quintela
0 siblings, 0 replies; 46+ messages in thread
From: Juan Quintela @ 2018-11-30 8:56 UTC (permalink / raw)
To: Thomas Huth; +Cc: qemu-devel, lvivier, dgilbert, peterx, Michael S . Tsirkin
Thomas Huth <thuth@redhat.com> wrote:
> On 2018-11-29 07:30, Thomas Huth wrote:
>> On 2018-11-26 20:59, Juan Quintela wrote:
>>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>>>
>>> ---
>>>
>>> Updated copyright info
>>> Also split virtio-pci.h bits
>>> ---
>>> hw/virtio/Makefile.objs | 2 +-
>>> hw/virtio/vhost-vsock-pci.c | 82 +++++++++++++++++++++++++++++++++++++
>>> hw/virtio/virtio-pci.c | 51 -----------------------
>>> hw/virtio/virtio-pci.h | 18 --------
>>> 4 files changed, 83 insertions(+), 70 deletions(-)
>>> create mode 100644 hw/virtio/vhost-vsock-pci.c
>>>
>>> diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
>>> index 1b2799cfd8..4fbf7de84b 100644
>>> --- a/hw/virtio/Makefile.objs
>>> +++ b/hw/virtio/Makefile.objs
>>> @@ -10,7 +10,7 @@ obj-$(CONFIG_VIRTIO_CRYPTO) += virtio-crypto.o
>>> obj-$(call land,$(CONFIG_VIRTIO_CRYPTO),$(CONFIG_VIRTIO_PCI)) +=
>>> virtio-crypto-pci.o
>>>
>>> obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
>>> -obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o
>>> +obj-$(CONFIG_VHOST_VSOCK) += vhost-vsock.o vhost-vsock-pci.o
>>
>> Please change this into:
>>
>> obj-$(call land,$(CONFIG_VHOST_VSOCK),$(CONFIG_VIRTIO_PCI)) += vhost-vsock-pci.o
>
> ... or alternatively, wrap the new lines in a "ifeq
> ($(CONFIG_VIRTIO_PCI),y)" block, that's maybe easier.
Good catch.
Agreed that the ifeq is the best approach.
Thanks, Juan.
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host bits from virtio-pci
2018-11-28 18:00 ` Laurent Vivier
@ 2018-12-12 17:43 ` Juan Quintela
0 siblings, 0 replies; 46+ messages in thread
From: Juan Quintela @ 2018-12-12 17:43 UTC (permalink / raw)
To: Laurent Vivier; +Cc: qemu-devel, dgilbert, peterx
Laurent Vivier <lvivier@redhat.com> wrote:
> On 26/11/2018 20:59, Juan Quintela wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> default-configs/virtio.mak | 1 +
>> hw/virtio/Makefile.objs | 1 +
>> hw/virtio/virtio-input-host-pci.c | 45 +++++++++++++++++++++++++++++++
>> hw/virtio/virtio-pci.c | 20 --------------
>> hw/virtio/virtio-pci.h | 14 ----------
>> 5 files changed, 47 insertions(+), 34 deletions(-)
>> create mode 100644 hw/virtio/virtio-input-host-pci.c
>>
>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
>
> You should add a note in the commit message you have renamed
> virtio_host_initfn and virtio_host_pci_info to virtio_input_host_initfn
> and virtio_input_host_info.
Done.
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng bits from virtio-pci
2018-11-28 20:06 ` Laurent Vivier
@ 2018-12-12 17:43 ` Juan Quintela
0 siblings, 0 replies; 46+ messages in thread
From: Juan Quintela @ 2018-12-12 17:43 UTC (permalink / raw)
To: Laurent Vivier; +Cc: qemu-devel, dgilbert, peterx
Laurent Vivier <lvivier@redhat.com> wrote:
> On 26/11/2018 20:59, Juan Quintela wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>>
>> ---
>>
>> Remove the "contributions after" clause. This is based on
>>
>> commit 59ccd20a9ac719cff82180429458728f03ec612f
>> Author: KONRAD Frederic <fred.konrad@greensocs.com>
>> Date: Wed Apr 24 10:07:56 2013 +0200
>> ---
>> hw/virtio/Makefile.objs | 1 +
>> hw/virtio/virtio-pci.c | 52 -----------------------
>> hw/virtio/virtio-pci.h | 14 -------
>> hw/virtio/virtio-rng-pci.c | 86 ++++++++++++++++++++++++++++++++++++++
>> tests/Makefile.include | 1 +
>> 5 files changed, 88 insertions(+), 66 deletions(-)
>> create mode 100644 hw/virtio/virtio-rng-pci.c
> ...
>> diff --git a/tests/Makefile.include b/tests/Makefile.include
>> index fb0b449c02..e8235890ec 100644
>> --- a/tests/Makefile.include
>> +++ b/tests/Makefile.include
>> @@ -149,6 +149,7 @@ check-qtest-virtio-y += tests/virtio-net-test$(EXESUF)
>> check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF)
>> check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
>> check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF)
>> +check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
>
> I think you should remove the line just above.
>
> except that:
Done.
Thanks.
>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p bits from virtio-pci
2018-11-28 20:15 ` Laurent Vivier
@ 2018-12-12 17:44 ` Juan Quintela
0 siblings, 0 replies; 46+ messages in thread
From: Juan Quintela @ 2018-12-12 17:44 UTC (permalink / raw)
To: Laurent Vivier; +Cc: qemu-devel, dgilbert, peterx
Laurent Vivier <lvivier@redhat.com> wrote:
> On 26/11/2018 20:59, Juan Quintela wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> hw/virtio/Makefile.objs | 1 +
>> hw/virtio/virtio-9p-pci.c | 86 +++++++++++++++++++++++++++++++++++++++
>> hw/virtio/virtio-pci.c | 52 -----------------------
>> hw/virtio/virtio-pci.h | 20 ---------
>> 4 files changed, 87 insertions(+), 72 deletions(-)
>> create mode 100644 hw/virtio/virtio-9p-pci.c
>>
>
> And what about tests/virtio-9p-test ?
You are right.
Fixed.
> except that:
>
> Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work
2018-11-28 20:48 ` Laurent Vivier
@ 2018-12-13 11:44 ` Juan Quintela
0 siblings, 0 replies; 46+ messages in thread
From: Juan Quintela @ 2018-12-13 11:44 UTC (permalink / raw)
To: Laurent Vivier; +Cc: qemu-devel, dgilbert, peterx
Laurent Vivier <lvivier@redhat.com> wrote:
> On 26/11/2018 21:00, Juan Quintela wrote:
>> Otherwise, it has no implementation.
>>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> default-configs/virtio.mak | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/default-configs/virtio.mak b/default-configs/virtio.mak
>> index 5ae4a61018..ecb4420e74 100644
>> --- a/default-configs/virtio.mak
>> +++ b/default-configs/virtio.mak
>> @@ -1,7 +1,7 @@
>> CONFIG_VHOST_USER_SCSI=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
>> CONFIG_VHOST_USER_BLK=$(call land,$(CONFIG_VHOST_USER),$(CONFIG_LINUX))
>> CONFIG_VIRTIO=y
>> -CONFIG_VIRTIO_9P=y
>> +CONFIG_VIRTIO_9P=$(CONFIG_VIRTFS)
>> CONFIG_VIRTIO_BALLOON=y
>> CONFIG_VIRTIO_BLK=y
>> CONFIG_VIRTIO_CRYPTO=y
>>
>
> I think you should also replace "#ifdef CONFIG_VIRTFS" by "#ifdef
> CONFIG_VIRTIO_9P" in:
>
> hw/s390x/virtio-ccw.h
> include/hw/xen/xen_backend.h
> hw/xen/xen_backend.c
After trying again, I remember why it failed.
CONFIG_VIRTFS is defined in config-host.mak (and everyting in
config-host.mak is defined also in config-host.h).
CONFIG_VIRTIO_* is defined on config-devices.mak, and that is not
defined in any include file.
Sniff.
Removed (again) that bit.
Later, Juan.
^ permalink raw reply [flat|nested] 46+ messages in thread
end of thread, other threads:[~2018-12-13 11:44 UTC | newest]
Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-26 19:59 [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 01/16] virtio: split vhost vsock bits " Juan Quintela
2018-11-28 17:33 ` Laurent Vivier
2018-11-29 6:30 ` Thomas Huth
2018-11-29 6:32 ` Thomas Huth
2018-11-30 8:56 ` Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 02/16] virtio: split virtio input host " Juan Quintela
2018-11-28 18:00 ` Laurent Vivier
2018-12-12 17:43 ` Juan Quintela
2018-11-28 18:21 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 03/16] virtio: split virtio input " Juan Quintela
2018-11-28 18:20 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 04/16] virtio: split virtio rng " Juan Quintela
2018-11-28 20:06 ` Laurent Vivier
2018-12-12 17:43 ` Juan Quintela
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 05/16] virtio: split virtio balloon " Juan Quintela
2018-11-28 20:09 ` Laurent Vivier
2018-11-26 19:59 ` [Qemu-devel] [PATCH v2 06/16] virtio: split virtio 9p " Juan Quintela
2018-11-28 20:15 ` Laurent Vivier
2018-12-12 17:44 ` Juan Quintela
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 07/16] virtio: split vhost user blk " Juan Quintela
2018-11-28 20:21 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 08/16] virtio: split vhost user scsi " Juan Quintela
2018-11-28 20:23 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 09/16] virtio: split vhost " Juan Quintela
2018-11-28 20:25 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 10/16] virtio: split virtio " Juan Quintela
2018-11-28 20:28 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 11/16] virtio: split virtio blk bits rom virtio-pci Juan Quintela
2018-11-28 20:31 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 12/16] virtio: split virtio net " Juan Quintela
2018-11-28 20:33 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 13/16] virtio: split virtio serial " Juan Quintela
2018-11-28 20:36 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 14/16] virtio: split virtio gpu bits rom virtio-pci.h Juan Quintela
2018-11-28 20:39 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 15/16] virtio: split virtio crypto " Juan Quintela
2018-11-28 20:41 ` Laurent Vivier
2018-11-26 20:00 ` [Qemu-devel] [PATCH v2 16/16] virtio: virtio 9p really requires CONFIG_VIRTFS to work Juan Quintela
2018-11-28 20:48 ` Laurent Vivier
2018-12-13 11:44 ` Juan Quintela
2018-11-27 11:38 ` [Qemu-devel] [PATCH v2 00/16] Virtio devices split from virtio-pci Dr. David Alan Gilbert
2018-11-28 3:13 ` Michael S. Tsirkin
2018-11-28 7:46 ` Juan Quintela
2018-11-28 15:16 ` Michael S. Tsirkin
2018-11-29 13:46 ` Juan Quintela
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.