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