[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070512225135.GA1143@nc.rr.com>
Date: Sat, 12 May 2007 18:51:35 -0400
From: Corey Mutter <crm-netdev@...-machine.mutternet.com>
To: yoshfuji@...ux-ipv6.org
Cc: netdev@...r.kernel.org
Subject: [PATCH 1/1] Reverse sense of promisc tests in ip6_mc_input
From: Corey Mutter <crm-netdev@...ternet.com>
Reverse the sense of the promiscuous-mode tests in ip6_mc_input().
Signed-off-by: Corey Mutter <crm-netdev@...ternet.com>
---
I had been suspicious of this code for a while, but just assumed I must
have been missing something. However, I did some tests and, sure enough,
I can open a socket and it will see IPv6 multicast packets come in, then
the packets will stop coming in when I turn on IFF_ALLMULTI on the
interface.
In my tests, this change works more like I'd expect; I can open a
socket, and it doesn't see any multicast packets (unless I join a group
or something) until after I turn on IFF_ALLMULTI.
--- linux-2.6.21.1/net/ipv6/ip6_input.c 2007-04-27 17:49:26.000000000 -0400
+++ linux/net/ipv6/ip6_input.c 2007-05-12 18:19:09.597750000 -0400
@@ -235,7 +235,7 @@ int ip6_mc_input(struct sk_buff *skb)
IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IPSTATS_MIB_INMCASTPKTS);
hdr = skb->nh.ipv6h;
- deliver = likely(!(skb->dev->flags & (IFF_PROMISC|IFF_ALLMULTI))) ||
+ deliver = unlikely(skb->dev->flags & (IFF_PROMISC|IFF_ALLMULTI)) ||
ipv6_chk_mcast_addr(skb->dev, &hdr->daddr, NULL);
/*
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists