浏览代码

vfio-pci: Mask INTx if a device is not capabable of enabling it

At the moment VFIO rightfully assumes that INTx is supported if
the interrupt pin is not set to zero in the device config space.
However if that is not the case (the pin is not zero but pdev->irq is),
vfio_intx_enable() fails.

In order to prevent the userspace from trying to enable INTx when we know
that it cannot work, let's mask the PCI_INTERRUPT_PIN register.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Alexey Kardashevskiy 7 年之前
父节点
当前提交
2170dd0431
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/vfio/pci/vfio_pci.c

+ 3 - 0
drivers/vfio/pci/vfio_pci.c

@@ -207,6 +207,9 @@ static bool vfio_pci_nointx(struct pci_dev *pdev)
 		}
 		}
 	}
 	}
 
 
+	if (!pdev->irq)
+		return true;
+
 	return false;
 	return false;
 }
 }