[libvirt] [PATCH 1/2] Rewrite vshPrintPinInfo

Peter Krempa pkrempa at redhat.com
Mon Apr 13 07:24:34 UTC 2015


On Fri, Apr 10, 2015 at 16:32:32 +0200, Ján Tomko wrote:
> Use virBitmapDataToString instead of constructing the ranges bit
> by bit, remove the checking of parameters (that is already done
> by the callers).
> 
> Let the callers choose the right bitmap, since there's only
> one that uses this helper on a matrix-in-an-array.
> ---
>  tools/virsh-domain.c | 41 ++++++++++-------------------------------
>  1 file changed, 10 insertions(+), 31 deletions(-)
> 
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 928360c..d5352d7 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c

...

> @@ -6526,7 +6505,8 @@ cmdVcpuPin(vshControl *ctl, const vshCmd *cmd)
>                      continue;
>  
>                  vshPrint(ctl, "%4zu: ", i);
> -                ret = vshPrintPinInfo(cpumap, cpumaplen, maxcpu, i);
> +                ret = vshPrintPinInfo(VIR_GET_CPUMAP(cpumap, cpumaplen, i),
> +                                      cpumaplen);
>                  vshPrint(ctl, "\n");
>                  if (!ret)
>                      break;
> @@ -6643,12 +6623,12 @@ cmdEmulatorPin(vshControl *ctl, const vshCmd *cmd)
>              flags = VIR_DOMAIN_AFFECT_CURRENT;
>  
>          cpumaps = vshMalloc(ctl, cpumaplen);
> -        if (virDomainGetEmulatorPinInfo(dom, cpumaps,
> +        if (virDomainGetEmulatorPinInfo(dom, cpumap,

@cpumap is NULL at this point. virDomainGetEmulatorPinInfo() requires
that it's non-NULL. Additionally after this change @cpumaps is unused
just allocated and freed.

>                                          cpumaplen, flags) >= 0) {
>              vshPrintExtra(ctl, "%s %s\n", _("emulator:"), _("CPU Affinity"));
>              vshPrintExtra(ctl, "----------------------------------\n");
>              vshPrintExtra(ctl, "       *: ");
> -            ret = vshPrintPinInfo(cpumaps, cpumaplen, maxcpu, 0);
> +            ret = vshPrintPinInfo(cpumap, cpumaplen);
>              vshPrint(ctl, "\n");
>          }
>          VIR_FREE(cpumaps);

ACK if you alocate @cpumap before the call and remove @cpumaps.

Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150413/3406184c/attachment-0001.sig>


More information about the libvir-list mailing list