Messages in this thread | | | Date | Wed, 17 Jan 2018 11:49:44 -0700 | From | Alex Williamson <> | Subject | Re: [PATCH] pci: Do not read INTx PIN and LINE registers for virtual functions |
| |
On Wed, 17 Jan 2018 19:30:29 +0100 KarimAllah Ahmed <karahmed@amazon.de> wrote:
> ... since INTx is not supported by-spec for virtual functions.
But the spec also states that VFs must implement the interrupt pin register as read-only zero, so either this is redundant or it's a workaround for VFs that aren't quite compliant? Thanks,
Alex
> > Cc: Bjorn Helgaas <bhelgaas@google.com> > Cc: linux-pci@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: KarimAllah Ahmed <karahmed@amazon.de> > Signed-off-by: Jan H. Schönherr <jschoenh@amazon.de> > --- > drivers/pci/probe.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index 65099d0..61002fb 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -1232,6 +1232,13 @@ static void pci_read_irq(struct pci_dev *dev) > { > unsigned char irq; > > + /* Virtual functions do not have INTx support */ > + 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)
| |