mirror of
https://github.com/libvirt/libvirt.git
synced 2026-10-02 12:20:06 -05:00
conf: Introduce virHostdevIsPCIDeviceWithIOMMUFD
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
1 parent
3365bff598
commit
97eed30948
4 files changed
+20
-4
No files matched your search
@@ -32939,6 +32939,21 @@ virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virHostdevIsPCIDeviceWithIOMMUFD:
|
||||
* @hostdev: host device to check
|
||||
*
|
||||
* Returns true if @hostdev is a PCI device with IOMMUFD enabled, false otherwise.
|
||||
*/
|
||||
bool
|
||||
virHostdevIsPCIDeviceWithIOMMUFD(const virDomainHostdevDef *hostdev)
|
||||
{
|
||||
return virHostdevIsPCIDevice(hostdev) &&
|
||||
hostdev->source.subsys.u.pci.driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO &&
|
||||
hostdev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
virDomainObjGetMessagesIOErrorsSrc(virStorageSource *src,
|
||||
const char *diskdst,
|
||||
|
||||
@@ -4720,6 +4720,9 @@ virHostdevIsMdevDevice(const virDomainHostdevDef *hostdev)
|
||||
bool
|
||||
virHostdevIsPCIDevice(const virDomainHostdevDef *hostdev)
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
bool
|
||||
virHostdevIsPCIDeviceWithIOMMUFD(const virDomainHostdevDef *hostdev)
|
||||
ATTRIBUTE_NONNULL(1);
|
||||
|
||||
void
|
||||
virDomainObjGetMessagesIOErrorsChain(virStorageSource *src,
|
||||
|
||||
@@ -813,6 +813,7 @@ virDomainQemuMonitorEventNew;
|
||||
virDomainQemuMonitorEventStateRegisterID;
|
||||
virHostdevIsMdevDevice;
|
||||
virHostdevIsPCIDevice;
|
||||
virHostdevIsPCIDeviceWithIOMMUFD;
|
||||
virHostdevIsSCSIDevice;
|
||||
|
||||
|
||||
|
||||
@@ -7736,10 +7736,7 @@ qemuProcessOpenVfioFds(virDomainObj *vm)
|
||||
for (i = 0; i < vm->def->nhostdevs; i++) {
|
||||
virDomainHostdevDef *hostdev = vm->def->hostdevs[i];
|
||||
|
||||
if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||
hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
|
||||
hostdev->source.subsys.u.pci.driver.name == VIR_DEVICE_HOSTDEV_PCI_DRIVER_NAME_VFIO &&
|
||||
hostdev->source.subsys.u.pci.driver.iommufd == VIR_TRISTATE_BOOL_YES) {
|
||||
if (virHostdevIsPCIDeviceWithIOMMUFD(hostdev)) {
|
||||
/* Open VFIO device FD */
|
||||
if (qemuProcessOpenVfioDeviceFd(hostdev) < 0)
|
||||
return -1;
|
||||
|
||||
Reference in new issue
Block a user