From: Michael S. Tsirkin <mst@xxxxxxxxxx> d52877c7b1af ("pci/irq: let pci_device_shutdown to call pci_msi_shutdown v2") disabled MSI/MSI-X at device shutdown to address a kexec problem. The problem is that after we disable MSI, the device may assert INTx, and if the driver hasn't registered an interrupt handler for it, the interrupt is never deasserted and causes a kernel hang. In particular, this was observed with virtio. We now disable MSI/MSI-X for all devices during enumeration regardless of CONFIG_PCI_MSI. This solves the kexec problem in the new kernel, not the old one. Stop disabling MSIs at shutdown to avoid the kernel hang. XXX bugzilla reference, details about how the hang happens? [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