On Sun, Aug 7, 2011 at 1:13 AM, Emmanuel Grumbach <egrumbach@xxxxxxxxx> wrote: > Can you please try that one ? > I don't have my machine near me, and don't want to crash it remotely, > so I didn't test it. I will test in on Sunday. Hi Emmanuel, I also got the same kernel panic when unloading the iwlagn module for my inbuilt laptop card and i tried the attached patch and it seems to fix it. > > > diff --git a/drivers/net/wireless/iwlwifi/iwl-pci.c > b/drivers/net/wireless/iwlwifi/iwl-pci.c > index 69d4ec4..2fdbffa 100644 > --- a/drivers/net/wireless/iwlwifi/iwl-pci.c > +++ b/drivers/net/wireless/iwlwifi/iwl-pci.c > @@ -478,27 +478,22 @@ out_no_pci: > return err; > } > > -static void iwl_pci_down(struct iwl_bus *bus) > -{ > - struct iwl_pci_bus *pci_bus = (struct iwl_pci_bus *) bus->bus_specific; > - > - pci_disable_msi(pci_bus->pci_dev); > - pci_iounmap(pci_bus->pci_dev, pci_bus->hw_base); > - pci_release_regions(pci_bus->pci_dev); > - pci_disable_device(pci_bus->pci_dev); > - pci_set_drvdata(pci_bus->pci_dev, NULL); > - > - kfree(bus); > -} > - > static void __devexit iwl_pci_remove(struct pci_dev *pdev) > { > struct iwl_priv *priv = pci_get_drvdata(pdev); > - void *bus_specific = priv->bus->bus_specific; > + struct iwl_bus *bus = priv->bus; > + struct iwl_pci_bus *pci_bus = IWL_BUS_GET_PCI_BUS(bus); > + struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus); > > iwl_remove(priv); > > - iwl_pci_down(bus_specific); > + pci_disable_msi(pci_dev); > + pci_iounmap(pci_dev, pci_bus->hw_base); > + pci_release_regions(pci_dev); > + pci_disable_device(pci_dev); > + pci_set_drvdata(pci_dev, NULL); > + > + kfree(bus); > } > > #ifdef CONFIG_PM > -- shafi -- 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