On Mon, Apr 22, 2019 at 04:43:30PM -0600, Alex Williamson wrote: > On systems that don't support any PCIe services other than bandwidth > notification, pcie_message_numbers() can return zero vectors, causing > the vector reallocation in pcie_port_enable_irq_vec() to retry with > zero, which fails, resulting in fallback to INTx (which might be > broken) for the bandwidth notification service. This can resolve > spurious interrupt faults due to this service on some systems. > > Fixes: e8303bb7a75c ("PCI/LINK: Report degraded links via link bandwidth notification") > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Applied for (hopefully) v5.1, thanks! > drivers/pci/pcie/portdrv_core.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c > index 7d04f9d087a6..1b330129089f 100644 > --- a/drivers/pci/pcie/portdrv_core.c > +++ b/drivers/pci/pcie/portdrv_core.c > @@ -55,7 +55,8 @@ static int pcie_message_numbers(struct pci_dev *dev, int mask, > * 7.8.2, 7.10.10, 7.31.2. > */ > > - if (mask & (PCIE_PORT_SERVICE_PME | PCIE_PORT_SERVICE_HP)) { > + if (mask & (PCIE_PORT_SERVICE_PME | PCIE_PORT_SERVICE_HP | > + PCIE_PORT_SERVICE_BWNOTIF)) { > pcie_capability_read_word(dev, PCI_EXP_FLAGS, ®16); > *pme = (reg16 & PCI_EXP_FLAGS_IRQ) >> 9; > nvec = *pme + 1; >