Root/
| 1 | --- a/drivers/cbus/retu.c |
| 2 | +++ b/drivers/cbus/retu.c |
| 3 | @@ -198,10 +198,12 @@ static irqreturn_t retu_irq_handler(int |
| 4 | u16 idr; |
| 5 | u16 imr; |
| 6 | |
| 7 | + mutex_lock(&retu->mutex); |
| 8 | idr = __retu_read_reg(retu, RETU_REG_IDR); |
| 9 | imr = __retu_read_reg(retu, RETU_REG_IMR); |
| 10 | - idr &= ~imr; |
| 11 | + mutex_unlock(&retu->mutex); |
| 12 | |
| 13 | + idr &= ~imr; |
| 14 | if (!idr) { |
| 15 | dev_vdbg(retu->dev, "No IRQ, spurious?\n"); |
| 16 | return IRQ_NONE; |
| 17 |
