summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorHong Liu <hong.liu@intel.com>2005-10-19 16:31:34 -0500
committerJames Ketrenos <jketreno@linux.intel.com>2005-10-19 16:49:03 -0500
commit5b74eda78db410b979b7d450221c971fdebf5d29 (patch)
tree4dd2ee158b10bf11e4f34ba00a28e09cdacbf272 /net
parentc4cfe567b92d5663f98e2f82f28ffc3069fc982f (diff)
downloadlinux-5b74eda78db410b979b7d450221c971fdebf5d29.tar.gz
linux-5b74eda78db410b979b7d450221c971fdebf5d29.tar.bz2
linux-5b74eda78db410b979b7d450221c971fdebf5d29.zip
Fixed problem with not being able to decrypt/encrypt broadcast packets.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/ieee80211/ieee80211_rx.c3
-rw-r--r--net/ieee80211/ieee80211_tx.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c
index 6b005cb0caa0..ce694cf5c160 100644
--- a/net/ieee80211/ieee80211_rx.c
+++ b/net/ieee80211/ieee80211_rx.c
@@ -409,7 +409,8 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
return 1;
}
- if (is_multicast_ether_addr(hdr->addr1) ? ieee->host_mc_decrypt :
+ if ((is_multicast_ether_addr(hdr->addr1) ||
+ is_broadcast_ether_addr(hdr->addr2)) ? ieee->host_mc_decrypt :
ieee->host_decrypt) {
int idx = 0;
if (skb->len >= hdrlen + 3)
diff --git a/net/ieee80211/ieee80211_tx.c b/net/ieee80211/ieee80211_tx.c
index 42c50619aa8e..2955b7aa5a38 100644
--- a/net/ieee80211/ieee80211_tx.c
+++ b/net/ieee80211/ieee80211_tx.c
@@ -338,7 +338,8 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
if (host_encrypt || ieee->host_open_frag) {
/* Determine fragmentation size based on destination (multicast
* and broadcast are not fragmented) */
- if (is_multicast_ether_addr(dest))
+ if (is_multicast_ether_addr(dest) ||
+ is_broadcast_ether_addr(dest))
frag_size = MAX_FRAG_THRESHOLD;
else
frag_size = ieee->fts;