Commit f1434a48 authored by Alan Curry's avatar Alan Curry Committed by Paul Mackerras

[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: default avatarAlan Curry <pacman@TheWorld.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 01aaed9d
...@@ -714,6 +714,7 @@ AltiVecUnavailable: ...@@ -714,6 +714,7 @@ AltiVecUnavailable:
#ifdef CONFIG_ALTIVEC #ifdef CONFIG_ALTIVEC
bne load_up_altivec /* if from user, just load it up */ bne load_up_altivec /* if from user, just load it up */
#endif /* CONFIG_ALTIVEC */ #endif /* CONFIG_ALTIVEC */
addi r3,r1,STACK_FRAME_OVERHEAD
EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception)
PerformanceMonitor: PerformanceMonitor:
......
...@@ -751,6 +751,7 @@ AltiVecUnavailable: ...@@ -751,6 +751,7 @@ AltiVecUnavailable:
#ifdef CONFIG_ALTIVEC #ifdef CONFIG_ALTIVEC
bne load_up_altivec /* if from user, just load it up */ bne load_up_altivec /* if from user, just load it up */
#endif /* CONFIG_ALTIVEC */ #endif /* CONFIG_ALTIVEC */
addi r3,r1,STACK_FRAME_OVERHEAD
EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception)
#ifdef CONFIG_PPC64BRIDGE #ifdef CONFIG_PPC64BRIDGE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment