Commit 7e34c0d2 authored by Brian Norris's avatar Brian Norris Committed by Kalle Valo

Revert "mwifiex: cancel pcie/sdio work in remove/shutdown handler"

This reverts commit b713bbf1.

The "fix" in question does not actually fix all related problems, and it
also introduces new deadlock possibilities. Since commit b014e96d
("PCI: Protect pci_error_handlers->reset_notify() usage with
device_lock()"), the race in question is actually resolved (PCIe reset
cannot happen at the same time as remove()). Instead, this "fix" just
introduces a deadlock where mwifiex_pcie_card_reset_work() is waiting on
device_lock, which is held by PCIe device remove(), which is waiting
on...mwifiex_pcie_card_reset_work().

The proper thing to do is just to fix the deadlock. Patch for this will
come separately.

Cc: Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 7e2c4922
...@@ -310,8 +310,6 @@ static void mwifiex_pcie_remove(struct pci_dev *pdev) ...@@ -310,8 +310,6 @@ static void mwifiex_pcie_remove(struct pci_dev *pdev)
mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN); mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN);
} }
cancel_work_sync(&card->work);
mwifiex_remove_card(adapter); mwifiex_remove_card(adapter);
} }
......
...@@ -399,8 +399,6 @@ mwifiex_sdio_remove(struct sdio_func *func) ...@@ -399,8 +399,6 @@ mwifiex_sdio_remove(struct sdio_func *func)
mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN); mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN);
} }
cancel_work_sync(&card->work);
mwifiex_remove_card(adapter); mwifiex_remove_card(adapter);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment