aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2018-03-16 21:31:55 (GMT)
committerJouni Malinen <j@w1.fi>2018-04-15 18:58:53 (GMT)
commitf875da04489f5906795a2a80ba6dbb9ddacb1fc8 (patch)
treee6bb05fedad236fa22ae91ccfe80c2a0d3ecf364
parent4449efeb1d9dc06ff242ecd84541ea38b9dc2198 (diff)
downloadhostap-f875da04489f5906795a2a80ba6dbb9ddacb1fc8.zip
hostap-f875da04489f5906795a2a80ba6dbb9ddacb1fc8.tar.gz
hostap-f875da04489f5906795a2a80ba6dbb9ddacb1fc8.tar.bz2
nl80211: Add MLME auth work-around for -EEXIST errno
The Linux 4.9 kernel, at least, can return EEXIST when trying to auth a station that already exists. We have seen this bug in multiple places, but it is difficult to reproduce. Here is a link to someone else that appears to have hit this issue: https://github.com/greearb/ath10k-ct/issues/18 Signed-off-by: Ben Greear <greearb@candelatech.com>
-rw-r--r--src/drivers/driver_nl80211.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index ac06d20..7570d12 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -3348,11 +3348,11 @@ retry:
msg = NULL;
if (ret) {
wpa_dbg(drv->ctx, MSG_DEBUG,
- "nl80211: MLME command failed (auth): ret=%d (%s)",
- ret, strerror(-ret));
+ "nl80211: MLME command failed (auth): count=%d ret=%d (%s)",
+ count, ret, strerror(-ret));
count++;
- if (ret == -EALREADY && count == 1 && params->bssid &&
- !params->local_state_change) {
+ if ((ret == -EALREADY || ret == -EEXIST) && count == 1 &&
+ params->bssid && !params->local_state_change) {
/*
* mac80211 does not currently accept new
* authentication if we are already authenticated. As a