Skip to content

Commit

Permalink
wl1251: fix sleep related error paths in wl1251_op_bss_info_changed()
Browse files Browse the repository at this point in the history
In various cases wl1251_op_bss_info_changed() did not call elp_sleep()
after an error was noticed. Fix it by using correct goto label.

The bug was a theoretical one, in practise it doesn't matter because
if commands start returning errors there will be lots of other problems.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Kalle Valo authored and John W. Linville committed Jan 12, 2010
1 parent dc52f0a commit 80a112f
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/net/wireless/wl12xx/wl1251_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -946,7 +946,7 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,
skb->data, skb->len);
dev_kfree_skb(skb);
if (ret < 0)
goto out;
goto out_sleep;

if (wl->bss_type != BSS_TYPE_IBSS) {
ret = wl1251_join(wl, wl->bss_type, wl->channel,
Expand Down Expand Up @@ -1018,7 +1018,7 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,
ret = wl1251_acx_cts_protect(wl, CTSPROTECT_DISABLE);
if (ret < 0) {
wl1251_warning("Set ctsprotect failed %d", ret);
goto out;
goto out_sleep;
}
}

Expand All @@ -1029,7 +1029,7 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,

if (ret < 0) {
dev_kfree_skb(beacon);
goto out;
goto out_sleep;
}

ret = wl1251_cmd_template_set(wl, CMD_PROBE_RESP, beacon->data,
Expand All @@ -1038,13 +1038,13 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,
dev_kfree_skb(beacon);

if (ret < 0)
goto out;
goto out_sleep;

ret = wl1251_join(wl, wl->bss_type, wl->beacon_int,
wl->channel, wl->dtim_period);

if (ret < 0)
goto out;
goto out_sleep;
}

out_sleep:
Expand Down

0 comments on commit 80a112f

Please sign in to comment.