2011-05-16 01:23:02 +08:00
|
|
|
--- a/drivers/cbus/retu.c
|
|
|
|
+++ b/drivers/cbus/retu.c
|
2011-03-01 04:24:56 +08:00
|
|
|
@@ -198,10 +198,12 @@ static irqreturn_t retu_irq_handler(int
|
|
|
|
u16 idr;
|
|
|
|
u16 imr;
|
|
|
|
|
|
|
|
+ mutex_lock(&retu->mutex);
|
|
|
|
idr = __retu_read_reg(retu, RETU_REG_IDR);
|
|
|
|
imr = __retu_read_reg(retu, RETU_REG_IMR);
|
|
|
|
- idr &= ~imr;
|
|
|
|
+ mutex_unlock(&retu->mutex);
|
|
|
|
|
|
|
|
+ idr &= ~imr;
|
|
|
|
if (!idr) {
|
|
|
|
dev_vdbg(retu->dev, "No IRQ, spurious?\n");
|
|
|
|
return IRQ_NONE;
|