summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/wil6210
diff options
context:
space:
mode:
authorDedy Lansky <qca_dlansky@qca.qualcomm.com>2014-09-10 17:34:37 +0400
committerJohn W. Linville <linville@tuxdriver.com>2014-09-11 23:27:37 +0400
commit69778059734b38ea6f4aa9d31262ad03e77b1b06 (patch)
treec8588231a83ae6e61d4d2c5939fdc26e10888545 /drivers/net/wireless/ath/wil6210
parent9cf10d623e4fc7d3d8bb6d6ce835e10933b3b114 (diff)
downloadlinux-69778059734b38ea6f4aa9d31262ad03e77b1b06.tar.xz
wil6210: fix for memory corruption while insmod
After setting interrupt handler, driver enabled interrupts. This caused stale (old) HW interrupts to fire before driver is fully initialized. The fix is to enable interrupts only when driver is fully initialized and after FW/HW reset (to prevent any stale interrupts) Signed-off-by: Dedy Lansky <qca_dlansky@qca.qualcomm.com> Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210')
-rw-r--r--drivers/net/wireless/ath/wil6210/interrupt.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/wil6210/interrupt.c b/drivers/net/wireless/ath/wil6210/interrupt.c
index 331d0dc5c7a5..58ddcc92f5ee 100644
--- a/drivers/net/wireless/ath/wil6210/interrupt.c
+++ b/drivers/net/wireless/ath/wil6210/interrupt.c
@@ -538,12 +538,7 @@ int wil6210_init_irq(struct wil6210_priv *wil, int irq)
wil6210_thread_irq,
wil->n_msi ? 0 : IRQF_SHARED,
WIL_NAME, wil);
- if (rc)
- return rc;
-
- wil6210_enable_irq(wil);
-
- return 0;
+ return rc;
}
void wil6210_fini_irq(struct wil6210_priv *wil, int irq)