On 08/12/2016 09:33 AM, Jiri Denemark wrote: > Some CPU drivers (such as arm) do not provide list of CPUs libvirt > supports and just pass any CPU model from domain XML directly to QEMU. > Such driver need to return models == NULL and success from cpuGetModels. > > Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> > --- > src/cpu/cpu.c | 15 +++++++++------ > src/libvirt-host.c | 3 ++- > tools/virsh-host.c | 10 +++++++--- > 3 files changed, 18 insertions(+), 10 deletions(-) > [...] > diff --git a/src/libvirt-host.c b/src/libvirt-host.c > index 2a3de03..335798a 100644 > --- a/src/libvirt-host.c > +++ b/src/libvirt-host.c > @@ -1005,7 +1005,8 @@ virConnectCompareCPU(virConnectPtr conn, > * > * Get the list of supported CPU models for a specific architecture. > * > - * Returns -1 on error, number of elements in @models on success. > + * Returns -1 on error, number of elements in @models on success (0 means > + * libvirt accepts any CPU model). > */ > int > virConnectGetCPUModelNames(virConnectPtr conn, const char *arch, char ***models, > diff --git a/tools/virsh-host.c b/tools/virsh-host.c > index 57f0c0e..7ac2812 100644 > --- a/tools/virsh-host.c > +++ b/tools/virsh-host.c > @@ -1127,9 +1127,13 @@ cmdCPUModelNames(vshControl *ctl, const vshCmd *cmd) > return false; > } > > - for (i = 0; i < nmodels; i++) { > - vshPrint(ctl, "%s\n", models[i]); > - VIR_FREE(models[i]); > + if (nmodels == 0) { > + vshPrint(ctl, "%s\n", _("all CPU models are accepted")); > + } else { > + for (i = 0; i < nmodels; i++) { > + vshPrint(ctl, "%s\n", models[i]); > + VIR_FREE(models[i]); > + } I seem to recall some recent work around the -q[uiet] switch - is that something that this code needs to be concerned with? (as silly as that seems while I'm typing it!) > } > VIR_FREE(models); > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list