On Thu, 04 Aug 2011 16:15:02 -0700 "Guy, Wey-Yi" <wey-yi.w.guy@xxxxxxxxx> wrote: > Could you look into this, we need to fix it for 3.1 The backtrace looked interesting to me, so I checked the code. It looks like iwl_pci_down() badly needs to be merged with iwl_pci_remove(). iwl_pci_down() is only called from iwl_pci_remove(), and is struggles badly to get the data that iwl_pci_remove() already has. That may fix everything. Unfortunately, I have no hardware to test it. pci_bus->pci_dev that iwl_pci_down() passes to pci_disable_msi() should be the same as pdev in iwl_pci_remove(). And pdev should be valid throughout the function. Also, the use of the void pointer in iwl_pci_remove() seems unjustified. Specific pointers are always better. -- Regards, Pavel Roskin -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html