On Tue, 04/14 11:47, Michael S. Tsirkin wrote: > I have investigated this, and I at this point I think the hang is basically > a non issue. So the commit log should say > > if the driver hasn't registered an interrupt handler for it, the interrupt > is never deasserted and causes spurious interrupts, typically > followed by kernel disabling the irq. Or, how about disabling intx immediately too? diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 3cb2210..dd7dcc1 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -452,6 +452,7 @@ static void pci_device_shutdown(struct device *dev) drv->shutdown(pci_dev); pci_msi_shutdown(pci_dev); pci_msix_shutdown(pci_dev); + pci_intx(pci_dev, 0); #ifdef CONFIG_KEXEC /* > > > > >> [bhelgaas: changelog] > > >> Reported-by: Fam Zheng <famz@xxxxxxxxxx> > > >> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > > >> Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > >> CC: Yinghai Lu <yhlu.kernel.send@xxxxxxxxx> > > >> CC: Ulrich Obergfell <uobergfe@xxxxxxxxxx> > > >> CC: Rusty Russell <rusty@xxxxxxxxxxxxxxx> > > >> --- > > >> drivers/pci/pci-driver.c | 2 -- > > >> 1 file changed, 2 deletions(-) > > >> > > >> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c > > >> index 3cb2210de553..38a602cb9fb7 100644 > > >> --- a/drivers/pci/pci-driver.c > > >> +++ b/drivers/pci/pci-driver.c > > >> @@ -450,8 +450,6 @@ static void pci_device_shutdown(struct device *dev) > > >> > > >> if (drv && drv->shutdown) > > >> drv->shutdown(pci_dev); > > >> - pci_msi_shutdown(pci_dev); > > >> - pci_msix_shutdown(pci_dev); > > >> > > >> #ifdef CONFIG_KEXEC > > >> /* > > >> -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html