tcp: tcp_make_synack() should use sock_wmalloc
authorPhil Oester <kernel@linuxace.com>
Tue, 27 Aug 2013 23:41:40 +0000 (16:41 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Aug 2013 20:02:04 +0000 (16:02 -0400)
In commit 90ba9b19 (tcp: tcp_make_synack() can use alloc_skb()), Eric changed
the call to sock_wmalloc in tcp_make_synack to alloc_skb.  In doing so,
the netfilter owner match lost its ability to block the SYNACK packet on
outbound listening sockets.  Revert the change, restoring the owner match
functionality.

This closes netfilter bugzilla #847.

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c

index e2972993c6711d237ae9e984e91750f140edf35e..170737a9d56df7d1c3992a64244eea868774abf1 100644 (file)
@@ -2670,7 +2670,7 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
        int tcp_header_size;
        int mss;
 
-       skb = alloc_skb(MAX_TCP_HEADER + 15, sk_gfp_atomic(sk, GFP_ATOMIC));
+       skb = sock_wmalloc(sk, MAX_TCP_HEADER + 15, 1, GFP_ATOMIC);
        if (unlikely(!skb)) {
                dst_release(dst);
                return NULL;