diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2005-09-28 20:41:45 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-09-28 20:41:45 -0700 |
commit | 5fd29752f09cabff582f65c0ce35518db4c64937 (patch) | |
tree | b46e5c2c596d26125a7c2aac619fe1b52431f978 /arch/sparc64/kernel/head.S | |
parent | 8cf14af0a740fb7e9f94a203b5a989beb875d58f (diff) | |
download | lwn-5fd29752f09cabff582f65c0ce35518db4c64937.tar.gz lwn-5fd29752f09cabff582f65c0ce35518db4c64937.zip |
[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.S | 7 |
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: prom_tba: .xword 0 tlb_type: .word 0 /* Must NOT end up in BSS */ .section ".fixup",#alloc,#execinstr - .globl __ret_efault + + .globl __ret_efault, __retl_efault __ret_efault: ret restore %g0, -EFAULT, %o0 - +__retl_efault: + retl + mov -EFAULT, %o0 |