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 <[EMAIL PROTECTED]>  Mon, 30 Oct 2006 16:54:29 +0100
+  [ Sven Luther ]
+  * [powerpc] Added exception alignement patch from Benjamin Herrenschmidt.
+
+ -- Sven Luther <[EMAIL PROTECTED]>  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

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

Reply via email to