aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/head.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2005-09-28 23:41:45 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-09-28 23:41:45 -0400
commit5fd29752f09cabff582f65c0ce35518db4c64937 (patch)
treeb46e5c2c596d26125a7c2aac619fe1b52431f978 /arch/sparc64/kernel/head.S
parent8cf14af0a740fb7e9f94a203b5a989beb875d58f (diff)
[SPARC64]: Fix fault handling in unaligned trap handler.
We were not calling kernel_mna_trap_fault() correctly. Instead of being fancy, just return 0 vs. -EFAULT from the assembler stubs, and handle that return value as appropriate. Create an "__retl_efault" stub for assembler exception table entries and use it where possible. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/head.S')
-rw-r--r--arch/sparc64/kernel/head.S7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index ecc748fb9ad7..89406f9649a9 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -540,8 +540,11 @@ bootup_user_stack_end:
540prom_tba: .xword 0 540prom_tba: .xword 0
541tlb_type: .word 0 /* Must NOT end up in BSS */ 541tlb_type: .word 0 /* Must NOT end up in BSS */
542 .section ".fixup",#alloc,#execinstr 542 .section ".fixup",#alloc,#execinstr
543 .globl __ret_efault 543
544 .globl __ret_efault, __retl_efault
544__ret_efault: 545__ret_efault:
545 ret 546 ret
546 restore %g0, -EFAULT, %o0 547 restore %g0, -EFAULT, %o0
547 548__retl_efault:
549 retl
550 mov -EFAULT, %o0