diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 489660d0d384dc93bc841932f1d2ca0d6ecf3192..a1cddca37793d10213e1988e6a562d1f34ac09fe 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -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)