Added interrupt alignement patch from Benjamin Herrenschmidt.
svn path=/dists/trunk/linux-2.6/; revision=7672
This commit is contained in:
parent
98975e69d8
commit
0999533526
|
@ -38,7 +38,10 @@ linux-2.6 (2.6.18-4) UNRELEASED; urgency=low
|
||||||
* r8169: pull revert mac address change support.
|
* r8169: pull revert mac address change support.
|
||||||
* [amd64]: Add upstream fix C3 timer test for dual core laptops.
|
* [amd64]: Add upstream fix C3 timer test for dual core laptops.
|
||||||
|
|
||||||
-- maximilian attems <maks@sternwelten.at> Mon, 30 Oct 2006 16:54:29 +0100
|
[ Sven Luther ]
|
||||||
|
* [powerpc] Added exception alignement patch from Benjamin Herrenschmidt.
|
||||||
|
|
||||||
|
-- Sven Luther <sven@tael.powerlinux.fr> Wed, 1 Nov 2006 08:57:13 +0100
|
||||||
|
|
||||||
linux-2.6 (2.6.18-3) unstable; urgency=low
|
linux-2.6 (2.6.18-3) unstable; urgency=low
|
||||||
|
|
||||||
|
|
|
@ -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)
|
|
@ -20,3 +20,4 @@
|
||||||
+ features/arm/ixp4xx-0.2.1-driver.patch
|
+ features/arm/ixp4xx-0.2.1-driver.patch
|
||||||
+ features/arm/ixp4xx-net-driver-fix-qmgr.patch
|
+ features/arm/ixp4xx-net-driver-fix-qmgr.patch
|
||||||
+ features/arm/ixp4xx-net-driver-improve-mac-handling.patch
|
+ features/arm/ixp4xx-net-driver-improve-mac-handling.patch
|
||||||
|
+ bugfix/powerpc/interrupt-alignement.patch
|
||||||
|
|
Loading…
Reference in New Issue