[libvirt] [PATCH 1/9] Remove dead code from qemuDomainAttachControllerDevice

John Ferlan jferlan at redhat.com
Thu Aug 13 17:39:18 UTC 2015



On 08/12/2015 10:52 AM, Ján Tomko wrote:
> We only support hotplugging SCSI controllers,
> USB and virtio-serial related code is useless here.
> ---
>  src/qemu/qemu_hotplug.c | 18 ------------------
>  1 file changed, 18 deletions(-)
> 

It's true that we only call this from two places currently:

 1. qemuDomainAttachDeviceControllerLive (static)
    -> Only when cont->type == VIR_DOMAIN_CONTROLLER_TYPE_SCSI
 2. qemuDomainFindOrCreateSCSIDiskController (static)
    -> Only via qemuDomainAttachSCSIDisk which only gets called when
(disk->bus == VIR_DOMAIN_DISK_BUS_SCSI

However, this is a global (ok somewhat global) function and thus could
erroneously be called by something else not realizing it's only
supported for SCSI.

So it seems to me perhaps the check and message from
qemuDomainAttachDeviceControllerLive could be moved to the top of this
function...


> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index aabdb78..8e38153 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -432,7 +432,6 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
>      char *devstr = NULL;
>      qemuDomainObjPrivatePtr priv = vm->privateData;
>      bool releaseaddr = false;
> -    bool addedToAddrSet = false;
>  

e.g. right here:

    if (cont->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI) {
        virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
                       _("'%s' controller cannot be hot plugged."),
                       virDomainControllerTypeToString(cont->type));
        return -1;
    }

Then the other code just becomes:

    return qemuDomainAttachControllerDevice(driver, vm, cont);


With the rest of this as is.

John
>      if (virDomainControllerFind(vm->def, controller->type, controller->idx) >= 0) {
>          virReportError(VIR_ERR_OPERATION_FAILED,
> @@ -463,20 +462,6 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
>          if (qemuAssignDeviceControllerAlias(vm->def, priv->qemuCaps, controller) < 0)
>              goto cleanup;
>  
> -        if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_USB &&
> -            controller->model == -1 &&
> -            !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_PIIX3_USB_UHCI)) {
> -            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                           _("USB controller hotplug unsupported in this QEMU binary"));
> -            goto cleanup;
> -        }
> -
> -        if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL &&
> -            virDomainVirtioSerialAddrSetAddController(priv->vioserialaddrs,
> -                                                      controller) < 0)
> -            goto cleanup;
> -        addedToAddrSet = true;
> -
>          if (!(devstr = qemuBuildControllerDevStr(vm->def, controller, priv->qemuCaps, NULL)))
>              goto cleanup;
>      }
> @@ -505,9 +490,6 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
>      }
>  
>   cleanup:
> -    if (ret != 0 && addedToAddrSet)
> -        virDomainVirtioSerialAddrSetRemoveController(priv->vioserialaddrs,
> -                                                     controller);
>      if (ret != 0 && releaseaddr)
>          qemuDomainReleaseDeviceAddress(vm, &controller->info, NULL);
>  
> 




More information about the libvir-list mailing list