From: Ben Greear Date: Fri, 16 Mar 2018 21:31:55 +0000 (-0700) Subject: nl80211: Add MLME auth work-around for -EEXIST errno X-Git-Tag: hostap_2_7~432 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f875da04489f5906795a2a80ba6dbb9ddacb1fc8;p=thirdparty%2Fhostap.git 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 --- diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index ac06d20fc..7570d1215 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