[libvirt] [PATCH v2 3/6] qemu: move hostdev boot validation into domain validation
Ján Tomko
jtomko at redhat.com
Tue Aug 27 11:44:32 UTC 2019
On Tue, Aug 13, 2019 at 05:40:27PM +0200, Boris Fiuczynski wrote:
>Moving the hostdev boot support validation from the command line
>generator code into the domain validation code.
>
>Signed-off-by: Boris Fiuczynski <fiuczy at linux.ibm.com>
>Reviewed-by: Marc Hartmayer <mhartmay at linux.ibm.com>
>---
> src/qemu/qemu_command.c | 13 +------------
> src/qemu/qemu_domain.c | 13 +++++++++++++
> tests/qemuxml2argvtest.c | 4 ++--
> 3 files changed, 16 insertions(+), 14 deletions(-)
>
>diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>index f096e8f27e..d32ffed5d6 100644
>--- a/src/qemu/qemu_command.c
>+++ b/src/qemu/qemu_command.c
>@@ -5625,6 +5625,7 @@ qemuBuildHostdevMediatedDevStr(const virDomainDef *def,
> return ret;
> }
>
>+
Unrelated whitespace change
> static int
> qemuBuildHostdevCommandLine(virCommandPtr cmd,
> const virDomainDef *def,
>@@ -5638,18 +5639,6 @@ qemuBuildHostdevCommandLine(virCommandPtr cmd,
> virDomainHostdevSubsysPtr subsys = &hostdev->source.subsys;
> char *devstr;
>
>- if (hostdev->info->bootIndex) {
>- if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
>- (subsys->type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
>- subsys->type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB &&
>- subsys->type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)) {
>- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
>- _("booting from assigned devices is only "
>- "supported for PCI, USB and SCSI devices"));
>- return -1;
>- }
>- }
>-
> /* USB */
> if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
> subsys->type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) {
>diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
>index b9c5a4e541..ce5334aa67 100644
>--- a/src/qemu/qemu_domain.c
>+++ b/src/qemu/qemu_domain.c
>@@ -5263,9 +5263,22 @@ qemuDomainDeviceDefValidateHostdev(const virDomainHostdevDef *hostdev,
> case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB:
> case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
> case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
>+ break;
> case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST:
>+ if (hostdev->info->bootIndex) {
>+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
>+ _("booting from assigned devices is only "
>+ "supported for PCI, USB and SCSI devices"));
>+ return -1;
>+ }
> break;
> case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV:
>+ if (hostdev->info->bootIndex) {
>+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
>+ _("booting from assigned devices is only "
>+ "supported for PCI, USB and SCSI devices"));
>+ return -1;
>+ }
> mdevsrc = &hostdev->source.subsys.u.mdev;
> return qemuDomainMdevDefValidate(mdevsrc, def, qemuCaps);
> case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST:
>diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
>index 5f94780f61..e378df097c 100644
>--- a/tests/qemuxml2argvtest.c
>+++ b/tests/qemuxml2argvtest.c
>@@ -1637,7 +1637,7 @@ mymain(void)
> QEMU_CAPS_CCW,
> QEMU_CAPS_CCW_CSSID_UNRESTRICTED,
> QEMU_CAPS_DEVICE_VFIO_AP);
>- DO_TEST_FAILURE("hostdev-subsys-mdev-vfio-ap-boot-fail",
>+ DO_TEST_PARSE_ERROR("hostdev-subsys-mdev-vfio-ap-boot-fail",
This will become DO_TEST_CAPS_ARCH_LATEST_PARSE_ERROR
> QEMU_CAPS_CCW,
> QEMU_CAPS_CCW_CSSID_UNRESTRICTED,
> QEMU_CAPS_DEVICE_VFIO_AP);
>@@ -2444,7 +2444,7 @@ mymain(void)
> DO_TEST("hostdev-scsi-vhost-scsi-pci",
> QEMU_CAPS_VIRTIO_SCSI,
> QEMU_CAPS_DEVICE_VHOST_SCSI);
>- DO_TEST_FAILURE("hostdev-scsi-vhost-scsi-pci-boot-fail",
>+ DO_TEST_PARSE_ERROR("hostdev-scsi-vhost-scsi-pci-boot-fail",
DO_TEST_CAPS_LATEST_PARSE_ERROR
Jano
> QEMU_CAPS_VIRTIO_SCSI,
> QEMU_CAPS_DEVICE_VHOST_SCSI);
> DO_TEST("hostdev-scsi-vhost-scsi-pcie",
>--
>2.17.0
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20190827/3d890c4f/attachment-0001.sig>
More information about the libvir-list
mailing list