[libvirt] [PATCH v3 03/12] qemu: Move CCW S390 Address check to controller def validate

John Ferlan posted 12 patches 7 years, 5 months ago
There is a newer version of this series
[libvirt] [PATCH v3 03/12] qemu: Move CCW S390 Address check to controller def validate
Posted by John Ferlan 7 years, 5 months ago
Move the call to qemuDomainCheckCCWS390AddressSupport from
qemuBuildControllerDevStr to qemuDomainDeviceDefValidateController.

This means we will get the qemuCaps from the driver opaque
variable passed to qemuDomainDeviceDefValidate.

Signed-off-by: John Ferlan <jferlan@redhat.com>
---
 src/qemu/qemu_command.c |  4 ----
 src/qemu/qemu_domain.c  | 20 +++++++++++++++++---
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index ffa89aa4a..894c3f323 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2662,10 +2662,6 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
 
     *devstr = NULL;
 
-    if (!qemuDomainCheckCCWS390AddressSupport(domainDef, def->info, qemuCaps,
-                                              "controller"))
-        return -1;
-
     if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI) {
         if ((qemuDomainSetSCSIControllerModel(domainDef, qemuCaps, &model)) < 0)
             return -1;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 877a0a322..8d966156d 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -3893,8 +3893,14 @@ qemuDomainDeviceDefValidateDisk(const virDomainDiskDef *disk)
 
 
 static int
-qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller)
+qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller,
+                                      const virDomainDef *def,
+                                      virQEMUCapsPtr qemuCaps)
 {
+    if (!qemuDomainCheckCCWS390AddressSupport(def, controller->info, qemuCaps,
+                                              "controller"))
+        return -1;
+
     switch ((virDomainControllerType) controller->type) {
     case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
     case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
@@ -3915,9 +3921,15 @@ qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller)
 static int
 qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
                             const virDomainDef *def,
-                            void *opaque ATTRIBUTE_UNUSED)
+                            void *opaque)
 {
     int ret = 0;
+    virQEMUDriverPtr driver = opaque;
+    virQEMUCapsPtr qemuCaps = NULL;
+
+    if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
+                                            def->emulator)))
+        return -1;
 
     switch ((virDomainDeviceType) dev->type) {
     case VIR_DOMAIN_DEVICE_NET:
@@ -3957,7 +3969,8 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
         break;
 
     case VIR_DOMAIN_DEVICE_CONTROLLER:
-        ret = qemuDomainDeviceDefValidateController(dev->data.controller);
+        ret = qemuDomainDeviceDefValidateController(dev->data.controller, def,
+                                                    qemuCaps);
         break;
 
     case VIR_DOMAIN_DEVICE_LEASE:
@@ -3978,6 +3991,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
         break;
     }
 
+    virObjectUnref(qemuCaps);
     return ret;
 }
 
-- 
2.13.6

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 03/12] qemu: Move CCW S390 Address check to controller def validate
Posted by Ján Tomko 7 years, 5 months ago
On Wed, Dec 06, 2017 at 08:13:59PM -0500, John Ferlan wrote:
>Move the call to qemuDomainCheckCCWS390AddressSupport from
>qemuBuildControllerDevStr to qemuDomainDeviceDefValidateController.
>
>This means we will get the qemuCaps from the driver opaque
>variable passed to qemuDomainDeviceDefValidate.
>
>Signed-off-by: John Ferlan <jferlan@redhat.com>
>---
> src/qemu/qemu_command.c |  4 ----
> src/qemu/qemu_domain.c  | 20 +++++++++++++++++---
> 2 files changed, 17 insertions(+), 7 deletions(-)
>

ACK

Jan
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 03/12] qemu: Move CCW S390 Address check to controller def validate
Posted by Farhan Ali 7 years, 5 months ago
This looks okay to me.

Reviewed-by: Farhan Ali <alifm@linux.vnet.ibm.com>

On 12/06/2017 08:13 PM, John Ferlan wrote:
> Move the call to qemuDomainCheckCCWS390AddressSupport from
> qemuBuildControllerDevStr to qemuDomainDeviceDefValidateController.
> 
> This means we will get the qemuCaps from the driver opaque
> variable passed to qemuDomainDeviceDefValidate.
> 
> Signed-off-by: John Ferlan <jferlan@redhat.com>
> ---
>   src/qemu/qemu_command.c |  4 ----
>   src/qemu/qemu_domain.c  | 20 +++++++++++++++++---
>   2 files changed, 17 insertions(+), 7 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index ffa89aa4a..894c3f323 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -2662,10 +2662,6 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
> 
>       *devstr = NULL;
> 
> -    if (!qemuDomainCheckCCWS390AddressSupport(domainDef, def->info, qemuCaps,
> -                                              "controller"))
> -        return -1;
> -
>       if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI) {
>           if ((qemuDomainSetSCSIControllerModel(domainDef, qemuCaps, &model)) < 0)
>               return -1;
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 877a0a322..8d966156d 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -3893,8 +3893,14 @@ qemuDomainDeviceDefValidateDisk(const virDomainDiskDef *disk)
> 
> 
>   static int
> -qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller)
> +qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller,
> +                                      const virDomainDef *def,
> +                                      virQEMUCapsPtr qemuCaps)
>   {
> +    if (!qemuDomainCheckCCWS390AddressSupport(def, controller->info, qemuCaps,
> +                                              "controller"))
> +        return -1;
> +
>       switch ((virDomainControllerType) controller->type) {
>       case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
>       case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
> @@ -3915,9 +3921,15 @@ qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller)
>   static int
>   qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
>                               const virDomainDef *def,
> -                            void *opaque ATTRIBUTE_UNUSED)
> +                            void *opaque)
>   {
>       int ret = 0;
> +    virQEMUDriverPtr driver = opaque;
> +    virQEMUCapsPtr qemuCaps = NULL;
> +
> +    if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
> +                                            def->emulator)))
> +        return -1;
> 
>       switch ((virDomainDeviceType) dev->type) {
>       case VIR_DOMAIN_DEVICE_NET:
> @@ -3957,7 +3969,8 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
>           break;
> 
>       case VIR_DOMAIN_DEVICE_CONTROLLER:
> -        ret = qemuDomainDeviceDefValidateController(dev->data.controller);
> +        ret = qemuDomainDeviceDefValidateController(dev->data.controller, def,
> +                                                    qemuCaps);
>           break;
> 
>       case VIR_DOMAIN_DEVICE_LEASE:
> @@ -3978,6 +3991,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
>           break;
>       }
> 
> +    virObjectUnref(qemuCaps);
>       return ret;
>   }
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list