diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-03 11:15:36 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-03 11:15:36 -0500 |
commit | 8002cedc1adbf51e2d56091534ef7551b88329b4 (patch) | |
tree | 2c65c82b2b5300eac581a0ee794d98f0b61593b6 /net/mac80211 | |
parent | e87cb5db0dc357473ac71801051954ddd6ff604f (diff) | |
parent | d523a328fb0271e1a763e985a21f2488fd816e7e (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/net-2.6: (27 commits)
[INET]: Fix inet_diag dead-lock regression
[NETNS]: Fix /proc/net breakage
[TEXTSEARCH]: Do not allow zero length patterns in the textsearch infrastructure
[NETFILTER]: fix forgotten module release in xt_CONNMARK and xt_CONNSECMARK
[NETFILTER]: xt_TCPMSS: remove network triggerable WARN_ON
[DECNET]: dn_nl_deladdr() almost always returns no error
[IPV6]: Restore IPv6 when MTU is big enough
[RXRPC]: Add missing select on CRYPTO
mac80211: rate limit wep decrypt failed messages
rfkill: fix double-mutex-locking
mac80211: drop unencrypted frames if encryption is expected
mac80211: Fix behavior of ieee80211_open and ieee80211_close
ieee80211: fix unaligned access in ieee80211_copy_snap
mac80211: free ifsta->extra_ie and clear IEEE80211_STA_PRIVACY_INVOKED
SCTP: Fix build issues with SCTP AUTH.
SCTP: Fix chunk acceptance when no authenticated chunks were listed.
SCTP: Fix the supported extensions paramter
SCTP: Fix SCTP-AUTH to correctly add HMACS paramter.
SCTP: Fix the number of HB transmissions.
[TCP] illinois: Incorrect beta usage
...
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/ieee80211.c | 10 | ||||
-rw-r--r-- | net/mac80211/rx.c | 2 | ||||
-rw-r--r-- | net/mac80211/wep.c | 3 |
3 files changed, 10 insertions, 5 deletions
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c index 59350b8727ec..505af1f067ab 100644 --- a/net/mac80211/ieee80211.c +++ b/net/mac80211/ieee80211.c | |||
@@ -216,6 +216,7 @@ static int ieee80211_open(struct net_device *dev) | |||
216 | res = local->ops->start(local_to_hw(local)); | 216 | res = local->ops->start(local_to_hw(local)); |
217 | if (res) | 217 | if (res) |
218 | return res; | 218 | return res; |
219 | ieee80211_hw_config(local); | ||
219 | } | 220 | } |
220 | 221 | ||
221 | switch (sdata->type) { | 222 | switch (sdata->type) { |
@@ -232,7 +233,6 @@ static int ieee80211_open(struct net_device *dev) | |||
232 | netif_tx_unlock_bh(local->mdev); | 233 | netif_tx_unlock_bh(local->mdev); |
233 | 234 | ||
234 | local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP; | 235 | local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP; |
235 | ieee80211_hw_config(local); | ||
236 | } | 236 | } |
237 | break; | 237 | break; |
238 | case IEEE80211_IF_TYPE_STA: | 238 | case IEEE80211_IF_TYPE_STA: |
@@ -334,8 +334,7 @@ static int ieee80211_stop(struct net_device *dev) | |||
334 | ieee80211_configure_filter(local); | 334 | ieee80211_configure_filter(local); |
335 | netif_tx_unlock_bh(local->mdev); | 335 | netif_tx_unlock_bh(local->mdev); |
336 | 336 | ||
337 | local->hw.conf.flags |= IEEE80211_CONF_RADIOTAP; | 337 | local->hw.conf.flags &= ~IEEE80211_CONF_RADIOTAP; |
338 | ieee80211_hw_config(local); | ||
339 | } | 338 | } |
340 | break; | 339 | break; |
341 | case IEEE80211_IF_TYPE_STA: | 340 | case IEEE80211_IF_TYPE_STA: |
@@ -357,6 +356,11 @@ static int ieee80211_stop(struct net_device *dev) | |||
357 | cancel_delayed_work(&local->scan_work); | 356 | cancel_delayed_work(&local->scan_work); |
358 | } | 357 | } |
359 | flush_workqueue(local->hw.workqueue); | 358 | flush_workqueue(local->hw.workqueue); |
359 | |||
360 | sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED; | ||
361 | kfree(sdata->u.sta.extra_ie); | ||
362 | sdata->u.sta.extra_ie = NULL; | ||
363 | sdata->u.sta.extra_ie_len = 0; | ||
360 | /* fall through */ | 364 | /* fall through */ |
361 | default: | 365 | default: |
362 | conf.if_id = dev->ifindex; | 366 | conf.if_id = dev->ifindex; |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 428a9fcf57d6..00f908d9275e 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -997,7 +997,7 @@ ieee80211_rx_h_drop_unencrypted(struct ieee80211_txrx_data *rx) | |||
997 | if (unlikely(!(rx->fc & IEEE80211_FCTL_PROTECTED) && | 997 | if (unlikely(!(rx->fc & IEEE80211_FCTL_PROTECTED) && |
998 | (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && | 998 | (rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA && |
999 | (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_NULLFUNC && | 999 | (rx->fc & IEEE80211_FCTL_STYPE) != IEEE80211_STYPE_NULLFUNC && |
1000 | rx->sdata->drop_unencrypted && | 1000 | (rx->key || rx->sdata->drop_unencrypted) && |
1001 | (rx->sdata->eapol == 0 || !ieee80211_is_eapol(rx->skb)))) { | 1001 | (rx->sdata->eapol == 0 || !ieee80211_is_eapol(rx->skb)))) { |
1002 | if (net_ratelimit()) | 1002 | if (net_ratelimit()) |
1003 | printk(KERN_DEBUG "%s: RX non-WEP frame, but expected " | 1003 | printk(KERN_DEBUG "%s: RX non-WEP frame, but expected " |
diff --git a/net/mac80211/wep.c b/net/mac80211/wep.c index 9bf0e1cc530a..b5f3413403bd 100644 --- a/net/mac80211/wep.c +++ b/net/mac80211/wep.c | |||
@@ -265,7 +265,8 @@ int ieee80211_wep_decrypt(struct ieee80211_local *local, struct sk_buff *skb, | |||
265 | if (ieee80211_wep_decrypt_data(local->wep_rx_tfm, rc4key, klen, | 265 | if (ieee80211_wep_decrypt_data(local->wep_rx_tfm, rc4key, klen, |
266 | skb->data + hdrlen + WEP_IV_LEN, | 266 | skb->data + hdrlen + WEP_IV_LEN, |
267 | len)) { | 267 | len)) { |
268 | printk(KERN_DEBUG "WEP decrypt failed (ICV)\n"); | 268 | if (net_ratelimit()) |
269 | printk(KERN_DEBUG "WEP decrypt failed (ICV)\n"); | ||
269 | ret = -1; | 270 | ret = -1; |
270 | } | 271 | } |
271 | 272 | ||