aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJurij Smakov <jurij@wooyd.org>2007-03-22 12:12:52 +0000
committerJurij Smakov <jurij@wooyd.org>2007-03-22 12:12:52 +0000
commit83ca4e05d6ac08fc33f2868ea149aa1fd73aa705 (patch)
tree959944ed388bf558a584e135b9c7caedac21b1a8
parent78f7f5a0dc9d6ae5aed4bc73fd01acde789fe93c (diff)
downloadkernel_replicant_linux-83ca4e05d6ac08fc33f2868ea149aa1fd73aa705.tar.gz
kernel_replicant_linux-83ca4e05d6ac08fc33f2868ea149aa1fd73aa705.tar.bz2
kernel_replicant_linux-83ca4e05d6ac08fc33f2868ea149aa1fd73aa705.zip
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 svn path=/dists/etch/linux-2.6/; revision=8384
-rw-r--r--debian/changelog3
-rw-r--r--debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch64
-rw-r--r--debian/patches/series/121
3 files changed, 68 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 17e703523f85..5edb8a93b009 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -22,6 +22,9 @@ linux-2.6 (2.6.18.dfsg.1-12) UNRELEASED; urgency=low
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
diff --git a/debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch b/debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch
new file mode 100644
index 000000000000..0f66c21be21d
--- /dev/null
+++ b/debian/patches/bugfix/sparc/tcp-sendmsg-t12k-oops-fix.patch
@@ -0,0 +1,64 @@
+Author : David Miller <davem@davemloft.net>
+Date : Mon, 19 Mar 2007 11:58:19 -0700 (PDT)
+Message-ID : <20070319.115819.63131235.davem@davemloft.net>
+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 <davem@davemloft.net>
+
+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
diff --git a/debian/patches/series/12 b/debian/patches/series/12
index 5fe5a253fc71..371913e93646 100644
--- a/debian/patches/series/12
+++ b/debian/patches/series/12
@@ -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