Skip to content

Commit

Permalink
ath6kl: don't use cfg80211_scan_request after cfg80211_scan_done()
Browse files Browse the repository at this point in the history
Use of cfg80211_scan_request is not valid after calling cfg80211_scan_done()
but ath6kl_cfg80211_scan_complete_event() was doing exactly that. Change
the function to call cfg80211_scan_done() last.

This was found during code review, I didn't see any visible problems
due to this bug.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
  • Loading branch information
Kalle Valo committed Nov 11, 2011
1 parent 3101ede commit cb93821
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/net/wireless/ath/ath6kl/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -874,6 +874,7 @@ static int ath6kl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, int status)
{
struct ath6kl *ar = vif->ar;
bool aborted;
int i;

ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status %d\n", __func__, status);
Expand All @@ -882,11 +883,11 @@ void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, int status)
return;

if ((status == -ECANCELED) || (status == -EBUSY)) {
cfg80211_scan_done(vif->scan_req, true);
aborted = true;
goto out;
}

cfg80211_scan_done(vif->scan_req, false);
aborted = false;

if (vif->scan_req->n_ssids && vif->scan_req->ssids[0].ssid_len) {
for (i = 0; i < vif->scan_req->n_ssids; i++) {
Expand All @@ -897,6 +898,7 @@ void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, int status)
}

out:
cfg80211_scan_done(vif->scan_req, aborted);
vif->scan_req = NULL;
}

Expand Down

0 comments on commit cb93821

Please sign in to comment.