[kernel] r12520 - in dists/etch/linux-2.6/debian: . patches/bugfix/hppa patches/series

Dann Frazier dannf at alioth.debian.org
Wed Dec 24 18:02:10 UTC 2008


Author: dannf
Date: Wed Dec 24 18:01:54 2008
New Revision: 12520

Log:
[hppa] disable UP-optimized flush_tlb_mm, fixing thread-related
hangs. (closes: #478717)

Added:
   dists/etch/linux-2.6/debian/patches/bugfix/hppa/parisc-disable-up-optimized-flush_tlb_mm.patch
Modified:
   dists/etch/linux-2.6/debian/changelog
   dists/etch/linux-2.6/debian/patches/series/24

Modified: dists/etch/linux-2.6/debian/changelog
==============================================================================
--- dists/etch/linux-2.6/debian/changelog	(original)
+++ dists/etch/linux-2.6/debian/changelog	Wed Dec 24 18:01:54 2008
@@ -5,6 +5,8 @@
      - Add PCI ids for P700m, P212, P410, P410i, P411, P812, P711m, p712m
      - Read the FIFO size from the controller config instead of
        hardcoding it into the driver
+  * [hppa] disable UP-optimized flush_tlb_mm, fixing thread-related
+    hangs. (closes: #478717)
 
   [ Ian Campbell ]
   * xen: Add softlockup-no-idle-hz.patch to prevent softlockup in xen guest.
@@ -15,7 +17,7 @@
   * [xen/i386] Fix pseudo hwcap value to match newer kernels.
     (closes: #506420)
 
- -- dann frazier <dannf at debian.org>  Tue, 23 Dec 2008 12:24:44 -0700
+ -- dann frazier <dannf at debian.org>  Wed, 24 Dec 2008 10:57:49 -0700
 
 linux-2.6 (2.6.18.dfsg.1-23) stable; urgency=high
 

Added: dists/etch/linux-2.6/debian/patches/bugfix/hppa/parisc-disable-up-optimized-flush_tlb_mm.patch
==============================================================================
--- (empty file)
+++ dists/etch/linux-2.6/debian/patches/bugfix/hppa/parisc-disable-up-optimized-flush_tlb_mm.patch	Wed Dec 24 18:01:54 2008
@@ -0,0 +1,36 @@
+From: Kyle McMartin <kyle at treachery.i.cabal.ca>
+Date: Tue, 23 Dec 2008 02:59:01 +0000 (-0500)
+Subject: parisc: disable UP-optimized flush_tlb_mm
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fkyle%2Fparisc-2.6.git;a=commitdiff_plain;h=378fe7c4cc619b561409206605c723c05358edac;hp=6c4dfa8f8bcf032137aacb3640d7dd9d75b2b607
+
+parisc: disable UP-optimized flush_tlb_mm
+
+flush_tlb_mm's "optimized" uniprocessor case of allocating a new
+context for userspace is exposing a race where we can suddely return
+to a syscall with the protection id and space id out of sync, trapping
+on the next userspace access.
+
+Debugged-by: James Bottomley <James.Bottomley at HansenPartnership.com>
+Tested-by: Helge Deller <deller at gmx.de>
+Signed-off-by: Kyle McMartin <kyle at mcmartin.ca>
+---
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/include/asm-parisc/tlbflush.h linux-source-2.6.26/include/asm-parisc/tlbflush.h
+--- linux-source-2.6.26.orig/include/asm-parisc/tlbflush.h	2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/asm-parisc/tlbflush.h	2008-12-23 12:32:30.000000000 -0700
+@@ -44,9 +44,12 @@ static inline void flush_tlb_mm(struct m
+ {
+ 	BUG_ON(mm == &init_mm); /* Should never happen */
+ 
+-#ifdef CONFIG_SMP
++#if 1 || defined(CONFIG_SMP)
+ 	flush_tlb_all();
+ #else
++	/* FIXME: currently broken, causing space id and protection ids
++	 *  to go out of sync, resulting in faults on userspace accesses.
++	 */
+ 	if (mm) {
+ 		if (mm->context != 0)
+ 			free_sid(mm->context);

Modified: dists/etch/linux-2.6/debian/patches/series/24
==============================================================================
--- dists/etch/linux-2.6/debian/patches/series/24	(original)
+++ dists/etch/linux-2.6/debian/patches/series/24	Wed Dec 24 18:01:54 2008
@@ -2,3 +2,4 @@
 + bugfix/cciss-new-hardware.patch
 + bugfix/cciss-read-config-to-obtain-max-outstanding-commands-per-controller.patch
 + bugfix/cciss-p711m,p712m-add-ids.patch
++ bugfix/hppa/parisc-disable-up-optimized-flush_tlb_mm.patch



More information about the Kernel-svn-changes mailing list