<dt><code>iommuGroup</code></dt>
<dd>
This element supports a single attribute <code>number</code>
- 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.
</dd>
</dl>
</dd>
<data type='string'/>
</attribute>
</element>
- <element name='iommuGroup'>
- <attribute name='number'>
- <ref name='unsignedInt'/>
- </attribute>
- </element>
+ <optional>
+ <element name='iommuGroup'>
+ <attribute name='number'>
+ <ref name='unsignedInt'/>
+ </attribute>
+ </element>
+ </optional>
</define>
<define name='capccwdev'>
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: