[ 3.8.y.z extended stable ] Patch "tcp: tcp_make_synack() should use sock_wmalloc" has been added to staging queue
Kamal Mostafa
kamal at canonical.com
Tue Oct 1 16:24:10 UTC 2013
This is a note to let you know that I have just added a patch titled
tcp: tcp_make_synack() should use sock_wmalloc
to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree
which can be found at:
http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue
This patch is scheduled to be released in version 3.8.13.11.
If you, or anyone else, feels it should not be added to this tree, please
reply to this email.
For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
Thanks.
-Kamal
------
>From eb7db2d5ed63c5aa9faafabe069b5b6197eb6382 Mon Sep 17 00:00:00 2001
From: Phil Oester <kernel at linuxace.com>
Date: Tue, 27 Aug 2013 16:41:40 -0700
Subject: tcp: tcp_make_synack() should use sock_wmalloc
commit eb8895debe1baba41fcb62c78a16f0c63c21662a upstream.
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 at linuxace.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
[ kamal: backport to 3.8 ]
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
net/ipv4/tcp_output.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 0bdd879..436d8fb 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2705,8 +2705,8 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
if (cvp != NULL && cvp->s_data_constant && cvp->s_data_desired)
s_data_desired = cvp->s_data_desired;
- skb = alloc_skb(MAX_TCP_HEADER + 15 + s_data_desired,
- sk_gfp_atomic(sk, GFP_ATOMIC));
+ skb = sock_wmalloc(sk, MAX_TCP_HEADER + 15 + s_data_desired, 1,
+ GFP_ATOMIC);
if (unlikely(!skb)) {
dst_release(dst);
return NULL;
--
1.8.1.2
More information about the kernel-team
mailing list