@@ -371,6 +371,7 @@ struct ieee80211_mgd_auth_data {
struct cfg80211_bss *bss;
unsigned long timeout;
int tries;
+ bool waiting_probe_resp;
u16 algorithm, expected_transaction;
u8 key[WLAN_KEY_LEN_WEP104];
@@ -3212,13 +3212,14 @@ static void
ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
ether_addr_equal(mgmt->bssid, ifmgd->associated->bssid))
ieee80211_reset_ap_probe(sdata);
- if (ifmgd->auth_data && !ifmgd->auth_data->bss->proberesp_ies &&
+ if (ifmgd->auth_data && ifmgd->auth_data->waiting_probe_resp &&
ether_addr_equal(mgmt->bssid, ifmgd->auth_data->bss->bssid)) {
/* got probe response, continue with auth */
sdata_info(sdata, "direct probe responded\n");
ifmgd->auth_data->tries = 0;
ifmgd->auth_data->timeout = jiffies;
ifmgd->auth_data->timeout_started = true;
+ ifmgd->auth_data->waiting_probe_resp = false;
run_again(sdata, ifmgd->auth_data->timeout);
}