Commit a10605e5 authored by Zhu Yi's avatar Zhu Yi Committed by John W. Linville
Browse files

mac80211: free ifsta->extra_ie and clear IEEE80211_STA_PRIVACY_INVOKED

I'm not sure if this is best choice, someone might have better
solutions. But this patch fixed the connection problem when switching
from a WPA enabled AP (using wpa_supplicant) to an open AP (using
iwconfig). The root cause is when we connect to a WPA enabled AP,
wpa_supplicant sets the ifsta->extra_ie thru SIOCSIWGENIE. But if we
stop wpa_supplicant and connect to an open AP with iwconfig, there is
no way to clear the extra_ie so that mac80211 keeps connecting with that.

Someone could argue wpa_supplicant should clear the extra_ie during
its shutdown. But mac80211 should also handle the unexpected shutdown
case (ie. killall -9 wpa_supplicant).

On Wed, 2007-11-21 at 16:19 +0100, Johannes Berg wrote:
> Yeah. Can you amend the patch to also clear the
Signed-off-by: default avatarZhu Yi <>
Acked-by: default avatarJohannes Berg <>
Signed-off-by: default avatarJohn W. Linville <>
parent d9f8bcbf
...@@ -334,6 +334,11 @@ static int ieee80211_stop(struct net_device *dev) ...@@ -334,6 +334,11 @@ static int ieee80211_stop(struct net_device *dev)
cancel_delayed_work(&local->scan_work); cancel_delayed_work(&local->scan_work);
} }
flush_workqueue(local->hw.workqueue); flush_workqueue(local->hw.workqueue);
sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED;
sdata->u.sta.extra_ie = NULL;
sdata->u.sta.extra_ie_len = 0;
/* fall through */ /* fall through */
default: default:
conf.if_id = dev->ifindex; conf.if_id = dev->ifindex;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment