diff options
Diffstat (limited to 'arch/powerpc/kernel/entry_64.S')
-rw-r--r-- | arch/powerpc/kernel/entry_64.S | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index d7369243ae44..2d802e97097c 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -214,7 +214,12 @@ syscall_dotrace: | |||
214 | bl .save_nvgprs | 214 | bl .save_nvgprs |
215 | addi r3,r1,STACK_FRAME_OVERHEAD | 215 | addi r3,r1,STACK_FRAME_OVERHEAD |
216 | bl .do_syscall_trace_enter | 216 | bl .do_syscall_trace_enter |
217 | ld r0,GPR0(r1) /* Restore original registers */ | 217 | /* |
218 | * Restore argument registers possibly just changed. | ||
219 | * We use the return value of do_syscall_trace_enter | ||
220 | * for the call number to look up in the table (r0). | ||
221 | */ | ||
222 | mr r0,r3 | ||
218 | ld r3,GPR3(r1) | 223 | ld r3,GPR3(r1) |
219 | ld r4,GPR4(r1) | 224 | ld r4,GPR4(r1) |
220 | ld r5,GPR5(r1) | 225 | ld r5,GPR5(r1) |
@@ -638,8 +643,7 @@ user_work: | |||
638 | b .ret_from_except_lite | 643 | b .ret_from_except_lite |
639 | 644 | ||
640 | 1: bl .save_nvgprs | 645 | 1: bl .save_nvgprs |
641 | li r3,0 | 646 | addi r3,r1,STACK_FRAME_OVERHEAD |
642 | addi r4,r1,STACK_FRAME_OVERHEAD | ||
643 | bl .do_signal | 647 | bl .do_signal |
644 | b .ret_from_except | 648 | b .ret_from_except |
645 | 649 | ||