[libvirt] [PATCH v3 02/12] qemu: Create new qemuDomainDeviceDefValidateControllerPCI()

Andrea Bolognani abologna at redhat.com
Fri Mar 2 13:05:14 UTC 2018


On Fri, 2018-03-02 at 07:34 -0500, Laine Stump wrote:
> On 02/21/2018 09:14 AM, Andrea Bolognani wrote:
[...]
> > +static int
> > +qemuDomainDeviceDefValidateControllerPCI(const virDomainControllerDef *cont,
> > +                                         const virDomainDef *def,
> > +                                         virQEMUCapsPtr qemuCaps)
> > +
> > +{
> > +    const virDomainPCIControllerOpts *pciopts = &cont->opts.pciopts;
> > +    const char *model = virDomainControllerModelPCITypeToString(cont->model);
> > +    const char *modelName = virDomainControllerPCIModelNameTypeToString(pciopts->modelName);
> > +
> > +    if (!model) {
> > +        virReportError(VIR_ERR_INTERNAL_ERROR,
> > +                       _("Unknown virDomainControllerModelPCI value: %d"),
> > +                       cont->model);
> > +        return -1;
> > +    }
> > +    if (!modelName) {
> > +        virReportError(VIR_ERR_INTERNAL_ERROR,
> > +                       _("Unknown virDomainControllerPCIModelName value: %d"),
> > +                       pciopts->modelName);
> > +        return -1;
> > +    }
> 
> (meant to send this before, but kept forgetting...)
> 
> 1) I thought modelName wasn't set for pci-root. Doesn't the above cause
> a validation error in that case? (too early in the day, haven't tried it)

The default value is _MODEL_NAME_NONE aka zero, which is still part
of the enumeration, so virDomainControllerPCIModelNameTypeToString()
won't return NULL and no error will be raised. For pSeries guests,
it will be set to _MODEL_NAME_SPAPR_PCI_HOST_BRIDGE so once again no
problem there.

> 2) danpb made a nice new function to standardize/simplify errors of the
> above type: virReportEnumRangeError().

His efforts on switch normalization and me rebasing this series
happened pretty much at the same time; more specifically, the
function you're talking about was introduced in 3b1020ac805e, while
my series is based on the earlier f565321b26df.

I guess this means another rebase! Yay! \o/

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list