The patch titled MSI debug code has been added to the -mm tree. Its filename is msi-debug-code.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: MSI debug code From: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> Below is an additional set of warnings that should help debug this. The old code just got lucky that it triggered a warning when this happens. Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/pci/msi.c | 6 ++++++ drivers/pci/pci.c | 1 + 2 files changed, 7 insertions(+) diff -puN drivers/pci/msi.c~msi-debug-code drivers/pci/msi.c --- a/drivers/pci/msi.c~msi-debug-code +++ a/drivers/pci/msi.c @@ -613,6 +613,7 @@ int pci_enable_msi(struct pci_dev* dev) return -EINVAL; WARN_ON(!!dev->msi_enabled); + WARN_ON(!hlist_empty(&dev->saved_cap_space)); /* Check whether driver already requested for MSI-X irqs */ if (dev->msix_enabled) { @@ -638,6 +639,8 @@ void pci_disable_msi(struct pci_dev* dev if (!dev->msi_enabled) return; + WARN_ON(!hlist_empty(&dev->saved_cap_space)); + msi_set_enable(dev, 0); pci_intx(dev, 1); /* enable intx */ dev->msi_enabled = 0; @@ -739,6 +742,7 @@ int pci_enable_msix(struct pci_dev* dev, } } WARN_ON(!!dev->msix_enabled); + WARN_ON(!hlist_empty(&dev->saved_cap_space)); /* Check whether driver already requested for MSI irq */ if (dev->msi_enabled) { @@ -763,6 +767,8 @@ void pci_disable_msix(struct pci_dev* de if (!dev->msix_enabled) return; + WARN_ON(!hlist_empty(&dev->saved_cap_space)); + msix_set_enable(dev, 0); pci_intx(dev, 1); /* enable intx */ dev->msix_enabled = 0; diff -puN drivers/pci/pci.c~msi-debug-code drivers/pci/pci.c --- a/drivers/pci/pci.c~msi-debug-code +++ a/drivers/pci/pci.c @@ -676,6 +676,7 @@ pci_restore_state(struct pci_dev *dev) } pci_restore_pcix_state(dev); pci_restore_msi_state(dev); + WARN_ON(!hlist_empty(&dev->saved_cap_space)); return 0; } _ Patches currently in -mm which might be from ebiederm@xxxxxxxxxxxx are fix-null-pointer-in-ia64-irq_chip-mask-unmask.patch powerpc-rtas-msi-support.patch fix-i-oat-for-kexec.patch i386-irq-kill-irq-compression.patch x86_64-irq-remove-extra-smp_processor_id-calling.patch remove-hardcoding-of-hard_smp_processor_id-on-up.patch use-the-apic-to-determine-the-hardware-processor-id-i386.patch use-the-apic-to-determine-the-hardware-processor-id-x86_64.patch always-ask-the-hardware-to-obtain-hardware-processor.patch clone-flag-clone_parent_tidptr-leaves-invalid-results-in-memory.patch allow-access-to-proc-pid-fd-after-setuid.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch fix-race-between-proc_get_inode-and-remove_proc_entry.patch edac-k8-driver-coding-tidy.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch msi-debug-code.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html