diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2013-10-09 12:15:11 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-10-10 14:05:42 -0400 |
commit | 4978705d26149a629b9f50ff221caed6f1ae3048 (patch) | |
tree | 3fabc899e9b591ad1fbe8c5a332a50ac8eaf58c5 | |
parent | 9473ca6e920a3b9ca902753ce52833657f9221cc (diff) |
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.c | 2 |
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; |