Re: [PATCH libvirt v3 01/11] nodedev: detect AP card device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 17, 2020 at 01:10:55PM +0100, Shalini Chellathurai Saroja wrote:
> Introduce support for the Adjunct Processor (AP) crypto card device.
> Udev already detects the device, so add support for libvirt nodedev
> driver.
> 
> Signed-off-by: Farhan Ali <alifm@xxxxxxxxxxxxx>
> Signed-off-by: Shalini Chellathurai Saroja <shalini@xxxxxxxxxxxxx>
> Reviewed-by: Bjoern Walk <bwalk@xxxxxxxxxxxxx>
> Reviewed-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx>
> ---
>  docs/formatnode.html.in            |  8 ++++++
>  docs/schemas/nodedev.rng           | 10 ++++++++
>  src/conf/node_device_conf.c        | 41 ++++++++++++++++++++++++++++++
>  src/conf/node_device_conf.h        |  8 ++++++
>  src/conf/virnodedeviceobj.c        |  1 +
>  src/node_device/node_device_udev.c | 29 +++++++++++++++++++++
>  tools/virsh-nodedev.c              |  1 +
>  7 files changed, 98 insertions(+)
> 
...

> +static int
> +virNodeDevCapAPCardParseXML(xmlXPathContextPtr ctxt,
> +                            virNodeDeviceDefPtr def,
> +                            xmlNodePtr node,
> +                            virNodeDevCapAPCardPtr ap_card)
> +{
> +    xmlNodePtr orig;
> +    g_autofree char *adapter = NULL;
> +
> +    orig = ctxt->node;
> +    ctxt->node = node;
> +
> +    if (!(adapter = virXPathString("string(./ap-adapter[1])", ctxt))) {
> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                       _("missing ap-adapter value for '%s'"), def->name);
> +        return -1;
> +    }
> +
> +    if (virStrToLong_uip(adapter, NULL, 0, &ap_card->ap_adapter) < 0) {
> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                       _("invalid ap-adapter value '%s' for '%s'"),
> +                       adapter, def->name);
> +        return -1;
> +    }
> +
> +    ctxt->node = orig;

^this restore will not happen if any of the above fails. I'd suggest using the
VIR_XPATH_NODE_AUTORESTORE(ctxt) macro which already adopts our latest g_auto*
standard.

In context of patch 3, I'd also suggest to extract the adapter parsing logic
into another static helper function e.g. virNodeDevAPAdapterParseXML which
could be reused later from virNodeDevCapAPQueueParseXML to avoid duplication.

Erik




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux