From: Solomon Peachy Date: Wed, 9 Oct 2013 16:15:11 +0000 (-0400) Subject: wireless: cw1200: acquire hwbus lock around cw1200_irq_handler() call. X-Git-Tag: v3.11.7~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60fd01d9c7c5114e2bafaf5c57d2300aa9559c02;p=thirdparty%2Fkernel%2Fstable.git wireless: cw1200: acquire hwbus lock around cw1200_irq_handler() call. commit 4978705d26149a629b9f50ff221caed6f1ae3048 upstream. 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). Signed-off-by: David Mosberger Signed-off-by: Solomon Peachy Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/wireless/cw1200/cw1200_spi.c b/drivers/net/wireless/cw1200/cw1200_spi.c index 899cad34ccd3a..755a0c8edfe12 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;