Author: jurij-guest
Date: Thu Mar 22 12:12:52 2007
New Revision: 8384

Added:
   
dists/etch/linux-2.6/debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch
Modified:
   dists/etch/linux-2.6/debian/changelog
   dists/etch/linux-2.6/debian/patches/series/12
Log:
Add bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch by David Miller, 
fixing an occasional oops in tcp_sendmsg() on T1k/T2k machines under 
heavy network load. Closes: #415819


Modified: dists/etch/linux-2.6/debian/changelog
==============================================================================
--- dists/etch/linux-2.6/debian/changelog       (original)
+++ dists/etch/linux-2.6/debian/changelog       Thu Mar 22 12:12:52 2007
@@ -22,6 +22,9 @@
     to frequent unaligned memory accesses on Sun machines with tulip NIC.
     Thanks to Doug Nazar for the patch and to Daniel J. Priem for testing.
     Closes: #409313.
+  * Add bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch by David Miller, fixing
+    an occasional oops in tcp_sendmsg() on T1k/T2k machines under heavy
+    network load. Closes: #415819
 
   [ dann frazier ]
   * bugfix/keys-serial-num-collision.patch

Added: 
dists/etch/linux-2.6/debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch
==============================================================================
--- (empty file)
+++ 
dists/etch/linux-2.6/debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch
    Thu Mar 22 12:12:52 2007
@@ -0,0 +1,64 @@
+Author          : David Miller <[EMAIL PROTECTED]>
+Date            : Mon, 19 Mar 2007 11:58:19 -0700 (PDT)
+Message-ID     : <[EMAIL PROTECTED]>
+Status          : confirmed working
+Description     : fixes oops in tcp_sendmsg on T1k/T2k machines under heavy 
network load
+
+[SPARC64]: store-init needs trailing membar.
+
+The manual says that it is required and we actually have crash reports
+where loads see stale data due to not having membars here.
+
+In one case the networking does:
+
+       memset(skb, 0, offsetof(struct sk_buff, truesize));
+
+and then some code later checks skb->nohdr for zero, but it's still
+the value that was there before the memset().
+
+Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
+
+diff --git a/arch/sparc64/lib/NGbzero.S b/arch/sparc64/lib/NGbzero.S
+index e86baec..f10e452 100644
+--- a/arch/sparc64/lib/NGbzero.S
++++ b/arch/sparc64/lib/NGbzero.S
+@@ -88,6 +88,7 @@ NGbzero_loop:
+       bne,pt          %xcc, NGbzero_loop
+        add            %o0, 64, %o0
+ 
++      membar          #Sync
+       wr              %o4, 0x0, %asi
+       brz,pn          %o1, NGbzero_done
+ NGbzero_medium:
+diff --git a/arch/sparc64/lib/NGmemcpy.S b/arch/sparc64/lib/NGmemcpy.S
+index 8e522b3..66063a9 100644
+--- a/arch/sparc64/lib/NGmemcpy.S
++++ b/arch/sparc64/lib/NGmemcpy.S
+@@ -247,6 +247,8 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */
+       /* fall through */
+ 
+ 60:   
++      membar          #Sync
++
+       /* %o2 contains any final bytes still needed to be copied
+        * over. If anything is left, we copy it one byte at a time.
+        */
+diff --git a/arch/sparc64/lib/NGpage.S b/arch/sparc64/lib/NGpage.S
+index 7d7c3bb..8ce3a0c 100644
+--- a/arch/sparc64/lib/NGpage.S
++++ b/arch/sparc64/lib/NGpage.S
+@@ -41,6 +41,7 @@ NGcopy_user_page:    /* %o0=dest, %o1=src, %o2=vaddr */
+       subcc           %g7, 64, %g7
+       bne,pt          %xcc, 1b
+        add            %o0, 32, %o0
++      membar          #Sync
+       retl
+        nop
+ 
+@@ -63,6 +64,7 @@ NGclear_user_page:   /* %o0=dest, %o1=vaddr */
+       subcc           %g7, 64, %g7
+       bne,pt          %xcc, 1b
+        add            %o0, 32, %o0
++      membar          #Sync
+       retl
+        nop

Modified: dists/etch/linux-2.6/debian/patches/series/12
==============================================================================
--- dists/etch/linux-2.6/debian/patches/series/12       (original)
+++ dists/etch/linux-2.6/debian/patches/series/12       Thu Mar 22 12:12:52 2007
@@ -6,3 +6,4 @@
 + bugfix/ipv6_setsockopt-NULL-deref.patch
 + bugfix/ipv6_getsockopt_sticky-null-opt.patch
 + bugfix/listxattr-mem-corruption.patch
++ bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch

_______________________________________________
Kernel-svn-changes mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to