Move code from ipw2100_wpa_enable to IPW2100_PARAM_DROP_UNENCRYPTED to support wpa_supplicant with open AP. We need this to make driver_ipw work. driver_ext has already had the similar code with the WE-18 support added. --- ipw2100-1.1.1-chuyee/ipw2100.c | 25 ++++++++++++++++++++++--- 1 files changed, 22 insertions(+), 3 deletions(-) diff -puN ipw2100.c~wpa-ipw-driver-fix ipw2100.c --- ipw2100-1.1.1/ipw2100.c~wpa-ipw-driver-fix 2005-07-13 14:56:33.000000000 +0800 +++ ipw2100-1.1.1-chuyee/ipw2100.c 2005-07-13 14:56:51.000000000 +0800 @@ -5588,10 +5588,29 @@ static int ipw2100_wpa_set_param(struct priv->ieee->tkip_countermeasures=value; break; - case IPW2100_PARAM_DROP_UNENCRYPTED: - priv->ieee->drop_unencrypted=value; + case IPW2100_PARAM_DROP_UNENCRYPTED: { + /* See IW_AUTH_DROP_UNENCRYPTED handling for details */ + struct ieee80211_security sec = { + .flags = SEC_ENABLED, + .enabled = value, + }; + priv->ieee->drop_unencrypted = value; + /* We only change SEC_LEVEL for open mode. Others + * are set by ipw_wpa_set_encryption. + */ + if (!value) { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_0; + } + else { + sec.flags |= SEC_LEVEL; + sec.level = SEC_LEVEL_1; + } + if (priv->ieee->set_security) + priv->ieee->set_security(priv->ieee->dev, &sec); break; - + } + case IPW2100_PARAM_PRIVACY_INVOKED: priv->ieee->privacy_invoked=value; break; _