netfilter: ipt_REJECT: avoid touching dst ref
authorEric Dumazet <eric.dumazet@gmail.com>
Mon, 5 Jul 2010 08:40:09 +0000 (10:40 +0200)
committerPatrick McHardy <kaber@trash.net>
Mon, 5 Jul 2010 08:40:09 +0000 (10:40 +0200)
We can avoid a pair of atomic ops in ipt_REJECT send_reset()

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
net/ipv4/netfilter/ipt_REJECT.c

index 3d0e064bab54b6f0c40e8a7f6d753e358cff5d49..b254dafaf4294548b7d36d9b54ce29832f8658e3 100644 (file)
@@ -110,7 +110,7 @@ static void send_reset(struct sk_buff *oldskb, int hook)
                addr_type = RTN_LOCAL;
 
        /* ip_route_me_harder expects skb->dst to be set */
-       skb_dst_set(nskb, dst_clone(skb_dst(oldskb)));
+       skb_dst_set_noref(nskb, skb_dst(oldskb));
 
        if (ip_route_me_harder(nskb, addr_type))
                goto free_nskb;