Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1ab6eb62b02e0949a392fb19bf31ba59ae1022b1
Commit:     1ab6eb62b02e0949a392fb19bf31ba59ae1022b1
Parent:     243bbcaa09e8482aa28065cbc2eb99f0ca2fc8d6
Author:     Herbert Xu <[EMAIL PROTECTED]>
AuthorDate: Tue Mar 6 20:29:58 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Apr 25 22:23:50 2007 -0700

    [UDP6]: Restore sk_filter optimisation
    
    This reverts the changeset
    
        [IPV6]: UDPv6 checksum.
    
        We always need to check UDPv6 checksum because it is mandatory.
    
    The sk_filter optimisation has nothing to do whether we verify the
    checksum.  It simply postpones it to the point when the user calls
    recv or poll.
    
    Signed-off-by: Herbert Xu <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/udp.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index f590db5..3413fc2 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -279,8 +279,10 @@ int udpv6_queue_rcv_skb(struct sock * sk, struct sk_buff 
*skb)
                }
        }
 
-       if (udp_lib_checksum_complete(skb))
-               goto drop;
+       if (sk->sk_filter) {
+               if (udp_lib_checksum_complete(skb))
+                       goto drop;
+       }
 
        if ((rc = sock_queue_rcv_skb(sk,skb)) < 0) {
                /* Note that an ENOMEM error is charged twice */
-
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