Skip to content

Commit

Permalink
wlcore: Fix unbalanced interrupts enablement
Browse files Browse the repository at this point in the history
The interrupt line is enabled by wl12xx_enable_interrupts and
wl18xx_enable_interrupts, but it will not be disabled in all failure
paths. Fix this.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <luca@coelho.fi>
  • Loading branch information
Ido Yariv authored and Luciano Coelho committed Sep 27, 2012
1 parent 792a58a commit a8311c8
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
9 changes: 8 additions & 1 deletion drivers/net/wireless/ti/wl12xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1184,9 +1184,16 @@ static int wl12xx_enable_interrupts(struct wl1271 *wl)
ret = wlcore_write_reg(wl, REG_INTERRUPT_MASK,
WL1271_ACX_INTR_ALL & ~(WL12XX_INTR_MASK));
if (ret < 0)
goto out;
goto disable_interrupts;

ret = wlcore_write32(wl, WL12XX_HI_CFG, HI_CFG_DEF_VAL);
if (ret < 0)
goto disable_interrupts;

return ret;

disable_interrupts:
wlcore_disable_interrupts(wl);

out:
return ret;
Expand Down
7 changes: 7 additions & 0 deletions drivers/net/wireless/ti/wl18xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -811,6 +811,13 @@ static int wl18xx_enable_interrupts(struct wl1271 *wl)

ret = wlcore_write_reg(wl, REG_INTERRUPT_MASK,
WL1271_ACX_INTR_ALL & ~intr_mask);
if (ret < 0)
goto disable_interrupts;

return ret;

disable_interrupts:
wlcore_disable_interrupts(wl);

out:
return ret;
Expand Down

0 comments on commit a8311c8

Please sign in to comment.