Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b331615722779b078822988843ddffd4eaec9f83
Commit:     b331615722779b078822988843ddffd4eaec9f83
Parent:     3c3b00caf98e5fdaa0184026a68f0008a5bf393e
Author:     John W. Linville <[EMAIL PROTECTED]>
AuthorDate: Tue Aug 28 17:01:55 2007 -0400
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:48:56 2007 -0700

    [MAC80211]: filter locally-originated multicast frames
    
    In STA mode, the AP will echo our traffic.  This includes multicast
    traffic.
    
    Receiving these frames confuses some protocols and applications,
    notably IPv6 Duplicate Address Detection.
    
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
    Signed-off-by: Johannes Berg <[EMAIL PROTECTED]>
    Acked-by: Michael Wu <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/mac80211/rx.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index e2c6f5c..969be3a 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -988,9 +988,10 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx)
                memcpy(dst, hdr->addr1, ETH_ALEN);
                memcpy(src, hdr->addr3, ETH_ALEN);
 
-               if (sdata->type != IEEE80211_IF_TYPE_STA) {
+               if (sdata->type != IEEE80211_IF_TYPE_STA ||
+                   (is_multicast_ether_addr(dst) &&
+                    !compare_ether_addr(src, dev->dev_addr)))
                        return TXRX_DROP;
-               }
                break;
        case 0:
                /* DA SA BSSID */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to