Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be20f6b0 authored by KarimAllah Ahmed's avatar KarimAllah Ahmed Committed by Bjorn Helgaas
Browse files

PCI/IOV: Skip INTx config reads for VFs



Per PCIe r4.0, sec 9.2.1.4, VFs can not implement INTX, and their Interrupt
Line and Interrupt Pin registers must be RO Zero.  Some devices have
thousands of VFs, so skip reading the registers as an optimization.

Signed-off-by: default avatarKarimAllah Ahmed <karahmed@amazon.de>
Signed-off-by: default avatarJan H. Schönherr <jschoenh@amazon.de>
[bhelgaas: changelog, comment]
Signed-off-by: default avatarBjorn Helgaas <helgaas@kernel.org>
parent 6b2f1351
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1230,6 +1230,13 @@ static void pci_read_irq(struct pci_dev *dev)
{
	unsigned char irq;

	/* VFs are not allowed to use INTx, so skip the config reads */
	if (dev->is_virtfn) {
		dev->pin = 0;
		dev->irq = 0;
		return;
	}

	pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq);
	dev->pin = irq;
	if (irq)