diff options
| -rw-r--r-- | drivers/net/wireless/ipw2100.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c index 73287ab7bff1..eaf47078ee56 100644 --- a/drivers/net/wireless/ipw2100.c +++ b/drivers/net/wireless/ipw2100.c | |||
| @@ -5880,9 +5880,27 @@ static int ipw2100_wpa_set_param(struct net_device *dev, u8 name, u32 value) | |||
| 5880 | 5880 | ||
| 5881 | break; | 5881 | break; |
| 5882 | 5882 | ||
| 5883 | case IPW2100_PARAM_DROP_UNENCRYPTED: | 5883 | case IPW2100_PARAM_DROP_UNENCRYPTED:{ |
| 5884 | priv->ieee->drop_unencrypted = value; | 5884 | /* See IW_AUTH_DROP_UNENCRYPTED handling for details */ |
| 5885 | break; | 5885 | struct ieee80211_security sec = { |
| 5886 | .flags = SEC_ENABLED, | ||
| 5887 | .enabled = value, | ||
| 5888 | }; | ||
| 5889 | priv->ieee->drop_unencrypted = value; | ||
| 5890 | /* We only change SEC_LEVEL for open mode. Others | ||
| 5891 | * are set by ipw_wpa_set_encryption. | ||
| 5892 | */ | ||
| 5893 | if (!value) { | ||
| 5894 | sec.flags |= SEC_LEVEL; | ||
| 5895 | sec.level = SEC_LEVEL_0; | ||
| 5896 | } else { | ||
| 5897 | sec.flags |= SEC_LEVEL; | ||
| 5898 | sec.level = SEC_LEVEL_1; | ||
| 5899 | } | ||
| 5900 | if (priv->ieee->set_security) | ||
| 5901 | priv->ieee->set_security(priv->ieee->dev, &sec); | ||
| 5902 | break; | ||
| 5903 | } | ||
| 5886 | 5904 | ||
| 5887 | case IPW2100_PARAM_PRIVACY_INVOKED: | 5905 | case IPW2100_PARAM_PRIVACY_INVOKED: |
| 5888 | priv->ieee->privacy_invoked = value; | 5906 | priv->ieee->privacy_invoked = value; |
