I'm debugging the bnx2 driver which doesn't work after suspend/resume if it is running in MSI-X mode. The problem is that during suspend, the MSI-X vectors are disabled by the following sequence on x86: take_cpu_down() -> cpu_disable_common() -> fixup_irqs() The MSI-X address/data used to disable the vectors are remembered in the above sequence. During resume, these address/data are then programmed back to the device during pci_restore_state(), causing all the vectors to remain disabled. Some drivers call free_irq() during suspend and request_irq() during resume, and that should avoid the problem. bnx2 and some other drivers do not do that. These drivers rely on pci_restore_state() to restore the MSI-X vectors to the same working state before suspend. What's the right way to fix this? Thanks. -- 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