[kernel] r7672 - in dists/trunk/linux-2.6/debian: . patches/bugfix/powerpc patches/series

Sven Luther luther at alioth.debian.org
Wed Nov 1 09:00:32 CET 2006


Author: luther
Date: Wed Nov  1 09:00:32 2006
New Revision: 7672

Added:
   dists/trunk/linux-2.6/debian/patches/bugfix/powerpc/interrupt-alignement.patch
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches/series/4
Log:
Added interrupt alignement patch from Benjamin Herrenschmidt. 


Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	(original)
+++ dists/trunk/linux-2.6/debian/changelog	Wed Nov  1 09:00:32 2006
@@ -38,7 +38,10 @@
   * r8169: pull revert mac address change support.
   * [amd64]: Add upstream fix C3 timer test for dual core laptops.
 
- -- maximilian attems <maks at sternwelten.at>  Mon, 30 Oct 2006 16:54:29 +0100
+  [ Sven Luther ]
+  * [powerpc] Added exception alignement patch from Benjamin Herrenschmidt.
+
+ -- Sven Luther <sven at tael.powerlinux.fr>  Wed,  1 Nov 2006 08:57:13 +0100
 
 linux-2.6 (2.6.18-3) unstable; urgency=low
 

Added: dists/trunk/linux-2.6/debian/patches/bugfix/powerpc/interrupt-alignement.patch
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/powerpc/interrupt-alignement.patch	Wed Nov  1 09:00:32 2006
@@ -0,0 +1,39 @@
+# Fixes exceptions alignement. 
+# Author: Benjamin Herrenschmidt benh at kernel.crashing.org 
+# Reference: http://ozlabs.org/pipermail/linuxppc-dev/2006-October/027374.html
+# Upstream: will be pushed upstream.
+
+Index: linux-work/arch/powerpc/kernel/traps.c
+===================================================================
+--- linux-work.orig/arch/powerpc/kernel/traps.c	2006-10-23 14:41:37.000000000 +1000
++++ linux-work/arch/powerpc/kernel/traps.c	2006-10-30 13:59:41.000000000 +1100
+@@ -843,7 +843,7 @@ void __kprobes program_check_exception(s
+ 
+ void alignment_exception(struct pt_regs *regs)
+ {
+-	int fixed = 0;
++	int sig, fixed = 0;
+ 
+ 	/* we don't implement logging of alignment exceptions */
+ 	if (!(current->thread.align_ctl & PR_UNALIGN_SIGBUS))
+@@ -856,15 +856,11 @@ void alignment_exception(struct pt_regs 
+ 	}
+ 
+ 	/* Operand address was bad */
+-	if (fixed == -EFAULT) {
+-		if (user_mode(regs))
+-			_exception(SIGSEGV, regs, SEGV_ACCERR, regs->dar);
+-		else
+-			/* Search exception table */
+-			bad_page_fault(regs, regs->dar, SIGSEGV);
+-		return;
+-	}
+-	_exception(SIGBUS, regs, BUS_ADRALN, regs->dar);
++	sig = fixed == -EFAULT ? SIGSEGV : SIGBUS;
++	if (user_mode(regs))
++		_exception(sig, regs, SEGV_ACCERR, regs->dar);
++	else
++		bad_page_fault(regs, regs->dar, sig);
+ }
+ 
+ void StackOverflow(struct pt_regs *regs)

Modified: dists/trunk/linux-2.6/debian/patches/series/4
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/4	(original)
+++ dists/trunk/linux-2.6/debian/patches/series/4	Wed Nov  1 09:00:32 2006
@@ -20,3 +20,4 @@
 + features/arm/ixp4xx-0.2.1-driver.patch
 + features/arm/ixp4xx-net-driver-fix-qmgr.patch
 + features/arm/ixp4xx-net-driver-improve-mac-handling.patch
++ bugfix/powerpc/interrupt-alignement.patch



More information about the Kernel-svn-changes mailing list