aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/kernel/head.S
diff options
context:
space:
mode:
authorAlan Curry <pacman@TheWorld.com>2006-02-22 01:42:37 -0500
committerPaul Mackerras <paulus@samba.org>2006-02-23 19:36:23 -0500
commitf1434a4854407a262d194411245eb9ee66221f90 (patch)
tree8a4cb8b766a372519041c8601bfedd96faf2e1ba /arch/ppc/kernel/head.S
parent01aaed9d43d5fff1ddb4c8de859f87ed7ee3608a (diff)
[PATCH] powerpc: fix altivec_unavailable_exception Oopses
altivec_unavailable_exception is called without setting r3... it looks like the r3 that actually gets passed in as struct pt_regs *regs is the undisturbed value of r3 at the time the altivec instruction was encountered. The user actually gets to choose the pt_regs printed in the Oops! This fixes the oops by passing the correct pt_regs pointer to altivec_unavailable_exception. Signed-off-by: Alan Curry <pacman@TheWorld.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc/kernel/head.S')
-rw-r--r--arch/ppc/kernel/head.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/ppc/kernel/head.S b/arch/ppc/kernel/head.S
index c5a890dca9cf..53ea845fb911 100644
--- a/arch/ppc/kernel/head.S
+++ b/arch/ppc/kernel/head.S
@@ -751,6 +751,7 @@ AltiVecUnavailable:
751#ifdef CONFIG_ALTIVEC 751#ifdef CONFIG_ALTIVEC
752 bne load_up_altivec /* if from user, just load it up */ 752 bne load_up_altivec /* if from user, just load it up */
753#endif /* CONFIG_ALTIVEC */ 753#endif /* CONFIG_ALTIVEC */
754 addi r3,r1,STACK_FRAME_OVERHEAD
754 EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) 755 EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception)
755 756
756#ifdef CONFIG_PPC64BRIDGE 757#ifdef CONFIG_PPC64BRIDGE