From 51ce76e97ec5a5ed0753887e07311fcf6966ff5c Mon Sep 17 00:00:00 2001 From: Kalle Valo Date: Tue, 1 Nov 2011 08:43:56 +0200 Subject: [PATCH] --- yaml --- r: 278095 b: refs/heads/master c: 1c17d313891c1477f5aad8d2e1da473bf8b9499d h: refs/heads/master i: 278093: 8818824649569fc249829488b7071c44af0323ca 278091: 53e668f19f378d873ace83e8e71c3a0dbb175744 278087: f25f48092f2d26c43869fe499c0a4c2dc3789d0a 278079: d9124f5bdf30a8021286747df7b1e6469c9adbb2 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ath/ath6kl/cfg80211.c | 12 ++++-------- trunk/drivers/net/wireless/ath/ath6kl/cfg80211.h | 2 +- trunk/drivers/net/wireless/ath/ath6kl/main.c | 10 +++++++--- trunk/drivers/net/wireless/ath/ath6kl/wmi.h | 4 ++++ 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index d8c2055e560c..f4420418cd33 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2387f0dcd10abf8f867ebb9b22d213793510b4c6 +refs/heads/master: 1c17d313891c1477f5aad8d2e1da473bf8b9499d diff --git a/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.c b/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.c index 01bb9ede471b..e7203cf17542 100644 --- a/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.c +++ b/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.c @@ -871,23 +871,19 @@ static int ath6kl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, return ret; } -void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, int status) +void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted) { struct ath6kl *ar = vif->ar; - bool aborted; int i; - ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status %d\n", __func__, status); + ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status%s\n", __func__, + aborted ? " aborted" : ""); if (!vif->scan_req) return; - if ((status == -ECANCELED) || (status == -EBUSY)) { - aborted = true; + if (aborted) goto out; - } - - 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++) { diff --git a/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.h b/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.h index d1a0216d7cf9..f323a49fdde3 100644 --- a/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.h +++ b/trunk/drivers/net/wireless/ath/ath6kl/cfg80211.h @@ -24,7 +24,7 @@ int ath6kl_register_ieee80211_hw(struct ath6kl *ar); struct ath6kl *ath6kl_core_alloc(struct device *dev); void ath6kl_deinit_ieee80211_hw(struct ath6kl *ar); -void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, int status); +void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted); void ath6kl_cfg80211_connect_event(struct ath6kl_vif *vif, u16 channel, u8 *bssid, u16 listen_intvl, diff --git a/trunk/drivers/net/wireless/ath/ath6kl/main.c b/trunk/drivers/net/wireless/ath/ath6kl/main.c index def0b7f29c37..d2822d0854eb 100644 --- a/trunk/drivers/net/wireless/ath/ath6kl/main.c +++ b/trunk/drivers/net/wireless/ath/ath6kl/main.c @@ -624,7 +624,7 @@ void ath6kl_deep_sleep_enable(struct ath6kl *ar) printk(KERN_WARNING "ath6kl: failed to disable scan " "during suspend\n"); - ath6kl_cfg80211_scan_complete_event(vif, -ECANCELED); + ath6kl_cfg80211_scan_complete_event(vif, true); /* save the current power mode before enabling power save */ ar->wmi->saved_pwr_mode = ar->wmi->pwr_mode; @@ -684,8 +684,12 @@ void ath6kl_ready_event(void *devt, u8 *datap, u32 sw_ver, u32 abi_ver) void ath6kl_scan_complete_evt(struct ath6kl_vif *vif, int status) { struct ath6kl *ar = vif->ar; + bool aborted = false; - ath6kl_cfg80211_scan_complete_event(vif, status); + if (status != WMI_SCAN_STATUS_SUCCESS) + aborted = true; + + ath6kl_cfg80211_scan_complete_event(vif, aborted); if (!ar->usr_bss_filter) { clear_bit(CLEAR_BSSFILTER_ON_BEACON, &vif->flags); @@ -1149,7 +1153,7 @@ static int ath6kl_close(struct net_device *dev) } - ath6kl_cfg80211_scan_complete_event(vif, -ECANCELED); + ath6kl_cfg80211_scan_complete_event(vif, true); /* FIXME: how to handle multi vif support? */ ret = ath6kl_init_hw_stop(ar); diff --git a/trunk/drivers/net/wireless/ath/ath6kl/wmi.h b/trunk/drivers/net/wireless/ath/ath6kl/wmi.h index ae514cb7159d..cf0462a490ae 100644 --- a/trunk/drivers/net/wireless/ath/ath6kl/wmi.h +++ b/trunk/drivers/net/wireless/ath/ath6kl/wmi.h @@ -1472,6 +1472,10 @@ struct wmi_tkip_micerr_event { u8 is_mcast; } __packed; +enum wmi_scan_status { + WMI_SCAN_STATUS_SUCCESS = 0, +}; + /* WMI_SCAN_COMPLETE_EVENTID */ struct wmi_scan_complete_event { a_sle32 status;