[kernel] r9942 - in dists/sid/linux-2.6/debian: . patches/bugfix patches/series

Maximilian Attems maks at alioth.debian.org
Tue Dec 11 20:32:10 UTC 2007


Author: maks
Date: Tue Dec 11 20:32:09 2007
New Revision: 9942

Log:
[net] Add Xu patch: Fix TCP header misalignment.

current stable is a bit erratic,
include fix in case it does not come along soon.


Added:
   dists/sid/linux-2.6/debian/patches/bugfix/tcp-header-misalignment.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/2

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	(original)
+++ dists/sid/linux-2.6/debian/changelog	Tue Dec 11 20:32:09 2007
@@ -13,8 +13,9 @@
   [ maximilian attems ]
   * [ppc] Reenable PMAC_BACKLIGHT.
   * [sparc] Add davem get_cpu() SunFire boot patch. (closes: #440720)
+  * [net] Add Xu patch: Fix TCP header misalignment.
 
- -- maximilian attems <maks at debian.org>  Mon, 10 Dec 2007 00:24:29 +0100
+ -- maximilian attems <maks at debian.org>  Tue, 11 Dec 2007 21:09:29 +0100
 
 linux-2.6 (2.6.23-1) unstable; urgency=low
 

Added: dists/sid/linux-2.6/debian/patches/bugfix/tcp-header-misalignment.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/bugfix/tcp-header-misalignment.patch	Tue Dec 11 20:32:09 2007
@@ -0,0 +1,46 @@
+Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21df56c6e2372e09c916111efb6c14c372a5ab2e
+Commit:     21df56c6e2372e09c916111efb6c14c372a5ab2e
+Parent:     483b23ffa3a5f44767038b0a676d757e0668437e
+Author:     Herbert Xu <herbert at gondor.apana.org.au>
+AuthorDate: Sun Nov 18 18:48:08 2007 -0800
+Committer:  David S. Miller <davem at davemloft.net>
+CommitDate: Sun Nov 18 18:48:08 2007 -0800
+
+    [TCP]: Fix TCP header misalignment
+    
+    Indeed my previous change to alloc_pskb has made it possible
+    for the TCP header to be misaligned iff the MTU is not a multiple
+    of 4 (and less than a page).  So I suspect the optimised IPsec
+    MTU calculation is giving you just such an MTU :)
+    
+    This patch fixes it by changing alloc_pskb to make sure that
+    the size is at least 32-bit aligned.  This does not cause the
+    problem fixed by the previous patch because max_header is always
+    32-bit aligned which means that in the SG/NOTSO case this will
+    be a no-op.
+    
+    I thought about putting this in the callers but all the current
+    callers are from TCP.  If and when we get a non-TCP caller we
+    can always create a TCP wrapper for this function and move the
+    alignment over there.
+    
+    Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
+    Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ include/net/sock.h |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/include/net/sock.h b/include/net/sock.h
+index 567e468..67e35c7 100644
+--- a/include/net/sock.h
++++ b/include/net/sock.h
+@@ -1236,6 +1236,9 @@ static inline struct sk_buff *sk_stream_alloc_pskb(struct sock *sk,
+ {
+ 	struct sk_buff *skb;
+ 
++	/* The TCP header must be at least 32-bit aligned.  */
++	size = ALIGN(size, 4);
++
+ 	skb = alloc_skb_fclone(size + sk->sk_prot->max_header, gfp);
+ 	if (skb) {
+ 		skb->truesize += mem;

Modified: dists/sid/linux-2.6/debian/patches/series/2
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/2	(original)
+++ dists/sid/linux-2.6/debian/patches/series/2	Tue Dec 11 20:32:09 2007
@@ -1,3 +1,4 @@
 + bugfix/arm/glantank-rtc.patch
 + features/all/export-gfs2-locking-symbols.patch
 + bugfix/sparc/sunfire-get_cpu.patch
++ bugfix/tcp-header-misalignment.patch



More information about the Kernel-svn-changes mailing list