wl1251: fix oops on early interrupt
authorGrazvydas Ignotas <notasas@gmail.com>
Sun, 13 May 2012 14:49:29 +0000 (17:49 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sun, 13 May 2012 16:12:18 +0000 (19:12 +0300)
commitdfb297db2140c5301f030c3616593885090760c3
treec8f62a8d58150d8bda3eb0617668e4e6a4eb9b48
parentdb2fc393d1af7e6bb0d2033f1f8e07325265d298
wl1251: fix oops on early interrupt

This driver disables interrupt just after requesting it and enables it
later, after interface is up. However currently there is a time window
between request_irq() and disable_irq() where if interrupt arrives, the
driver oopses because it's not yet ready to process it. This can be
reproduced by inserting the module, associating and removing the module
multiple times.

Eliminate this race by setting IRQF_NOAUTOEN flag before request_irq().

Cc: stable@vger.kernel.org # v2.6.37+
Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
drivers/net/wireless/wl1251/sdio.c
drivers/net/wireless/wl1251/spi.c