]> err.no Git - linux-2.6/commitdiff
Fixed is_network_packet() to include checking for broadcast packets.
authorPeter Jones <pjones@redhat.com>
Fri, 26 Aug 2005 21:51:06 +0000 (16:51 -0500)
committerJames Ketrenos <jketreno@linux.intel.com>
Mon, 7 Nov 2005 23:51:25 +0000 (17:51 -0600)
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
drivers/net/wireless/ipw2200.c

index 86a4c2358f9df442914aa6f86c98644f81ad018f..d417ed7af7c14f979e8f46d49e7ed0edbd8dd8fe 100644 (file)
@@ -8096,21 +8096,23 @@ static inline int is_network_packet(struct ipw_priv *priv,
                if (!memcmp(header->addr2, priv->net_dev->dev_addr, ETH_ALEN))
                        return 0;
 
-               /* multicast packets to our IBSS go through */
-               if (is_multicast_ether_addr(header->addr1))
+               /* {broad,multi}cast packets to our BSSID go through */
+               if (is_multicast_ether_addr(header->addr1) ||
+                   is_broadcast_ether_addr(header->addr1))
                        return !memcmp(header->addr3, priv->bssid, ETH_ALEN);
 
                /* packets to our adapter go through */
                return !memcmp(header->addr1, priv->net_dev->dev_addr,
                               ETH_ALEN);
 
-       case IW_MODE_INFRA:     /* Header: Dest. | AP{BSSID} | Source */
+       case IW_MODE_INFRA:     /* Header: Dest. | BSSID | Source */
                /* packets from our adapter are dropped (echo) */
                if (!memcmp(header->addr3, priv->net_dev->dev_addr, ETH_ALEN))
                        return 0;
 
-               /* {broad,multi}cast packets to our IBSS go through */
-               if (is_multicast_ether_addr(header->addr1))
+               /* {broad,multi}cast packets to our BSS go through */
+               if (is_multicast_ether_addr(header->addr1) ||
+                   is_broadcast_ether_addr(header->addr1))
                        return !memcmp(header->addr2, priv->bssid, ETH_ALEN);
 
                /* packets to our adapter go through */