OSDN Git Service

wl1251: fix oops on early interrupt
authorGrazvydas Ignotas <notasas@gmail.com>
Fri, 18 May 2012 00:04:08 +0000 (03:04 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 9 Jun 2012 15:33:05 +0000 (00:33 +0900)
commit65926f3ad3b38644b74496f2a32161f6f02f1079
treead8d1f7d067ebc7ef8ac047bd38bcc92f4c41088
parentb8d3d5a553b423ab3676554aeddf30dc6ededbcb
wl1251: fix oops on early interrupt

commit f380f2c4a12e913356bd49f8790ec1063c4fe9f8 upstream.

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().

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/wl1251/sdio.c
drivers/net/wireless/wl1251/spi.c