Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 428bc8c3 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by John W. Linville
Browse files

iwlagn: fix rmmod crash



priv->bus.bus_specific pointer is used after priv structures was freed,
in iwl_pci_remove(), what make ugly rmmod crash. This bug was introduced
by current pci changes.

On the way remove fake check, if prober error code is returned from
.probe() function, .remove() will never be called be null drvdata.

Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 1d616b14
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -496,14 +496,11 @@ static void iwl_pci_down(void *bus)
static void __devexit iwl_pci_remove(struct pci_dev *pdev)
{
	struct iwl_priv *priv = pci_get_drvdata(pdev);

	/* This can happen if probe failed */
	if (unlikely(!priv))
		return;
	void *bus_specific = priv->bus.bus_specific;

	iwl_remove(priv);

	iwl_pci_down(IWL_BUS_GET_PCI_BUS(&priv->bus));
	iwl_pci_down(bus_specific);
}

#ifdef CONFIG_PM