summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2013-10-09 12:15:11 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-10-10 14:05:42 -0400
commit4978705d26149a629b9f50ff221caed6f1ae3048 (patch)
tree3fabc899e9b591ad1fbe8c5a332a50ac8eaf58c5
parent9473ca6e920a3b9ca902753ce52833657f9221cc (diff)
downloadlinux-4978705d26149a629b9f50ff221caed6f1ae3048.tar.gz
linux-4978705d26149a629b9f50ff221caed6f1ae3048.tar.bz2
linux-4978705d26149a629b9f50ff221caed6f1ae3048.zip
wireless: cw1200: acquire hwbus lock around cw1200_irq_handler() call.
This fixes "lost interrupt" problems that occurred on SPI-based systems. cw1200_irq_handler() expects the hwbus to be locked, but on the SPI-path, that lock wasn't taken (unlike in the SDIO-path, where the generic SDIO-code takes care of acquiring the lock). Cc: stable@vger.kernel.org Signed-off-by: David Mosberger <davidm@egauge.net> Signed-off-by: Solomon Peachy <pizza@shaftnet.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/cw1200/cw1200_spi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/cw1200/cw1200_spi.c b/drivers/net/wireless/cw1200/cw1200_spi.c
index 899cad34ccd3..755a0c8edfe1 100644
--- a/drivers/net/wireless/cw1200/cw1200_spi.c
+++ b/drivers/net/wireless/cw1200/cw1200_spi.c
@@ -237,7 +237,9 @@ static irqreturn_t cw1200_spi_irq_handler(int irq, void *dev_id)
struct hwbus_priv *self = dev_id;
if (self->core) {
+ cw1200_spi_lock(self);
cw1200_irq_handler(self->core);
+ cw1200_spi_unlock(self);
return IRQ_HANDLED;
} else {
return IRQ_NONE;