[libvirt] [PATCH v2 11/14] qemuBuildInterfaceCommandLine: Pass proper args

John Ferlan jferlan at redhat.com
Thu Oct 13 14:59:54 UTC 2016


On 10/06/2016 09:38 AM, Michal Privoznik wrote:
> Instead of various NULL arguments, we can pass proper qemu driver
> config, log manager, and virCommand.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/qemu/qemu_command.c | 31 ++++++++++++++++++-------------
>  1 file changed, 18 insertions(+), 13 deletions(-)
> 

This needs to be merged with patch 10

see note below

ACK w/ the merged patches - let's avoid a round of ATTRIBUTE_NONNULL

John

> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 246ffe0..895bb23 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7822,12 +7822,15 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
>  }
>  
>  static int
> -qemuBuildVhostuserCommandLine(virCommandPtr cmd,
> +qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
> +                              virLogManagerPtr logManager,
> +                              virCommandPtr cmd,
>                                virDomainDefPtr def,
>                                virDomainNetDefPtr net,
>                                virQEMUCapsPtr qemuCaps,
>                                unsigned int bootindex)
>  {
> +    virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
>      char *chardev = NULL;
>      virBuffer netdev_buf = VIR_BUFFER_INITIALIZER;
>      unsigned int queues = net->driver.virtio.queues;
> @@ -7841,7 +7844,7 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
>  
>      switch ((virDomainChrType) net->data.vhostuser->type) {
>      case VIR_DOMAIN_CHR_TYPE_UNIX:
> -        if (!(chardev = qemuBuildChrChardevStr(NULL, NULL, NULL, def,
> +        if (!(chardev = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
>                                                 net->data.vhostuser,
>                                                 net->info.alias, qemuCaps, false)))
>              goto error;
> @@ -7895,10 +7898,12 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
>  
>      virCommandAddArgList(cmd, "-device", nic, NULL);
>      VIR_FREE(nic);
> +    virObjectUnref(cfg);
>  
>      return 0;
>  
>   error:
> +    virObjectUnref(cfg);
>      VIR_FREE(chardev);
>      virBufferFreeAndReset(&netdev_buf);
>      VIR_FREE(nic);
> @@ -7907,8 +7912,9 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
>  }
>  
>  static int
> -qemuBuildInterfaceCommandLine(virCommandPtr cmd,
> -                              virQEMUDriverPtr driver,
> +qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
> +                              virLogManagerPtr logManager,
> +                              virCommandPtr cmd,
>                                virDomainDefPtr def,
>                                virDomainNetDefPtr net,
>                                virQEMUCapsPtr qemuCaps,
> @@ -7928,7 +7934,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
>      char **tapfdName = NULL;
>      char **vhostfdName = NULL;
>      virDomainNetType actualType = virDomainNetGetActualType(net);
> -    virQEMUDriverConfigPtr cfg = NULL;

NOTE: Ironically I had suggested removing cfg in patch 4.  You can
either do it then or now, it doesn't matter!

>      virNetDevBandwidthPtr actualBandwidth;
>      size_t i;
>  
> @@ -7971,8 +7976,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
>          return -1;
>      }
>  
> -    cfg = virQEMUDriverGetConfig(driver);
> -
>      switch (actualType) {
>      case VIR_DOMAIN_NET_TYPE_NETWORK:
>      case VIR_DOMAIN_NET_TYPE_BRIDGE:
> @@ -8032,7 +8035,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
>          break;
>  
>      case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
> -        ret = qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
> +        ret = qemuBuildVhostuserCommandLine(driver, logManager, cmd, def,
> +                                            net, qemuCaps, bootindex);
>          goto cleanup;
>          break;
>  
> @@ -8205,7 +8209,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
>      VIR_FREE(host);
>      VIR_FREE(tapfdName);
>      VIR_FREE(vhostfdName);
> -    virObjectUnref(cfg);
>      return ret;
>  }
>  
> @@ -8215,8 +8218,9 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
>   *       API domainSetSecurityTapFDLabel that doesn't use the const format.
>   */
>  static int
> -qemuBuildNetCommandLine(virCommandPtr cmd,
> -                        virQEMUDriverPtr driver,
> +qemuBuildNetCommandLine(virQEMUDriverPtr driver,
> +                        virLogManagerPtr logManager,
> +                        virCommandPtr cmd,
>                          virDomainDefPtr def,
>                          virQEMUCapsPtr qemuCaps,
>                          virNetDevVPortProfileOp vmop,
> @@ -8254,7 +8258,7 @@ qemuBuildNetCommandLine(virCommandPtr cmd,
>              else
>                  vlan = i;
>  
> -            if (qemuBuildInterfaceCommandLine(cmd, driver, def, net,
> +            if (qemuBuildInterfaceCommandLine(driver, logManager, cmd, def, net,
>                                                qemuCaps, vlan, bootNet, vmop,
>                                                standalone, nnicindexes,
>                                                nicindexes) < 0)
> @@ -9481,7 +9485,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
>      if (qemuBuildFSDevCommandLine(cmd, def, qemuCaps) < 0)
>          goto error;
>  
> -    if (qemuBuildNetCommandLine(cmd, driver, def, qemuCaps, vmop, standalone,
> +    if (qemuBuildNetCommandLine(driver, logManager, cmd, def,
> +                                qemuCaps, vmop, standalone,
>                                  nnicindexes, nicindexes, &bootHostdevNet) < 0)
>          goto error;
>  
> 




More information about the libvir-list mailing list