wil6210: fix for memory corruption while insmod
authorDedy Lansky <qca_dlansky@qca.qualcomm.com>
Wed, 10 Sep 2014 13:34:37 +0000 (16:34 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 11 Sep 2014 19:27:37 +0000 (15:27 -0400)
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>
drivers/net/wireless/ath/wil6210/interrupt.c

index 331d0dc5c7a5bfae1a1fa6448bbf55f64b014448..58ddcc92f5ee0ae4514827df4dad3356195f163a 100644 (file)
@@ -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)