Fixed problem with not being able to decrypt/encrypt broadcast packets.
authorHong Liu <hong.liu@intel.com>
Wed, 19 Oct 2005 21:31:34 +0000 (16:31 -0500)
committerJames Ketrenos <jketreno@linux.intel.com>
Wed, 19 Oct 2005 21:49:03 +0000 (16:49 -0500)
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
net/ieee80211/ieee80211_rx.c
net/ieee80211/ieee80211_tx.c

index 6b005cb0caa0efb86218a049b49bb7ddccbf1b21..ce694cf5c1604a945c491446241debf8d3ee9666 100644 (file)
@@ -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)
index 42c50619aa8e3a1d0d60c978fa87aa009005b286..2955b7aa5a38cc5fb3386e95ef0b5c9d201b2201 100644 (file)
@@ -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;