diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in index 76eae928dea597ea2ccbc884239e11fa231fe751..4ed43ec0cb1a6bba7104dbbd1826febd34239765 100644 --- a/docs/formatnode.html.in +++ b/docs/formatnode.html.in @@ -390,8 +390,9 @@
iommuGroup
This element supports a single attribute number - which holds the IOMMU group number the mediated device belongs - to. + which holds the IOMMU group number to which the mediated device + belongs. This is a read-only field that is reported by the + device driver.
diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng index fe6ffa0b5318bbd6b4d6e077f58f6b3af3e7df13..ca3a79db87ed5b6d232a92e0f62491a49bc7f404 100644 --- a/docs/schemas/nodedev.rng +++ b/docs/schemas/nodedev.rng @@ -629,11 +629,13 @@ - - - - - + + + + + + + diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index bccdbd0af82c600769bf5c0c2e1985102208b258..2ef4514f05e2afce04e0e743758cd5a563249fc3 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -1775,13 +1775,15 @@ virNodeDevCapMdevParseXML(xmlXPathContextPtr ctxt, goto out; } - if (virNodeDevCapsDefParseULong("number(./iommuGroup[1]/@number)", ctxt, - &mdev->iommuGroupNumber, def, - _("missing iommuGroup number attribute for " - "'%s'"), - _("invalid iommuGroup number attribute for " - "'%s'")) < 0) + /* 'iommuGroup' is optional, only report an error if the supplied value is + * invalid (-2), not if it's missing (-1) */ + if (virXPathUInt("number(./iommuGroup[1]/@number)", + ctxt, &mdev->iommuGroupNumber) < -1) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("invalid iommuGroup number attribute for '%s'"), + def->name); goto out; + } ret = 0; out: