diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2013-09-23 16:00:04 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-09-26 14:02:31 -0400 |
commit | 87421cb6010a2f6494938fbe0a95e1b096b3b7af (patch) | |
tree | b96cd185d3bc2bbc39c6434244b29dbee95beea4 /drivers/net/wireless/cw1200 | |
parent | c4fb19d21b003ec99ec490ba2cb60baffabc73f3 (diff) |
cw1200: Use a threaded oneshot irq handler for cw1200_spi
This supercedes the older patch ("cw1200: Don't perform SPI transfers in
interrupt context") that badly attempted to fix this problem.
This is a far simpler solution, which has the added benefit of
actually working.
Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/cw1200')
-rw-r--r-- | drivers/net/wireless/cw1200/cw1200_spi.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/cw1200/cw1200_spi.c b/drivers/net/wireless/cw1200/cw1200_spi.c index 5a64ac963009..899cad34ccd3 100644 --- a/drivers/net/wireless/cw1200/cw1200_spi.c +++ b/drivers/net/wireless/cw1200/cw1200_spi.c | |||
@@ -250,9 +250,10 @@ static int cw1200_spi_irq_subscribe(struct hwbus_priv *self) | |||
250 | 250 | ||
251 | pr_debug("SW IRQ subscribe\n"); | 251 | pr_debug("SW IRQ subscribe\n"); |
252 | 252 | ||
253 | ret = request_any_context_irq(self->func->irq, cw1200_spi_irq_handler, | 253 | ret = request_threaded_irq(self->func->irq, NULL, |
254 | IRQF_TRIGGER_HIGH, | 254 | cw1200_spi_irq_handler, |
255 | "cw1200_wlan_irq", self); | 255 | IRQF_TRIGGER_HIGH | IRQF_ONESHOT, |
256 | "cw1200_wlan_irq", self); | ||
256 | if (WARN_ON(ret < 0)) | 257 | if (WARN_ON(ret < 0)) |
257 | goto exit; | 258 | goto exit; |
258 | 259 | ||