diff options
Diffstat (limited to 'arch/microblaze/kernel/entry.S')
-rw-r--r-- | arch/microblaze/kernel/entry.S | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index e3ecb36dd554..3bad4ff49471 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S | |||
@@ -31,6 +31,8 @@ | |||
31 | #include <linux/errno.h> | 31 | #include <linux/errno.h> |
32 | #include <asm/signal.h> | 32 | #include <asm/signal.h> |
33 | 33 | ||
34 | #undef DEBUG | ||
35 | |||
34 | /* The size of a state save frame. */ | 36 | /* The size of a state save frame. */ |
35 | #define STATE_SAVE_SIZE (PT_SIZE + STATE_SAVE_ARG_SPACE) | 37 | #define STATE_SAVE_SIZE (PT_SIZE + STATE_SAVE_ARG_SPACE) |
36 | 38 | ||
@@ -352,10 +354,12 @@ C_ENTRY(_user_exception): | |||
352 | add r12, r12, r12; /* convert num -> ptr */ | 354 | add r12, r12, r12; /* convert num -> ptr */ |
353 | add r12, r12, r12; | 355 | add r12, r12, r12; |
354 | 356 | ||
357 | #ifdef DEBUG | ||
355 | /* Trac syscalls and stored them to r0_ram */ | 358 | /* Trac syscalls and stored them to r0_ram */ |
356 | lwi r3, r12, 0x400 + r0_ram | 359 | lwi r3, r12, 0x400 + r0_ram |
357 | addi r3, r3, 1 | 360 | addi r3, r3, 1 |
358 | swi r3, r12, 0x400 + r0_ram | 361 | swi r3, r12, 0x400 + r0_ram |
362 | #endif | ||
359 | 363 | ||
360 | # Find and jump into the syscall handler. | 364 | # Find and jump into the syscall handler. |
361 | lwi r12, r12, sys_call_table | 365 | lwi r12, r12, sys_call_table |
@@ -496,17 +500,6 @@ C_ENTRY(sys_execve): | |||
496 | brid microblaze_execve; /* Do real work (tail-call).*/ | 500 | brid microblaze_execve; /* Do real work (tail-call).*/ |
497 | nop; | 501 | nop; |
498 | 502 | ||
499 | C_ENTRY(sys_rt_sigsuspend_wrapper): | ||
500 | swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ | ||
501 | swi r4, r1, PTO+PT_R4; | ||
502 | la r7, r1, PTO; /* add user context as 3rd arg */ | ||
503 | brlid r15, sys_rt_sigsuspend; /* Do real work.*/ | ||
504 | nop; | ||
505 | lwi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ | ||
506 | lwi r4, r1, PTO+PT_R4; | ||
507 | bri ret_from_trap /* fall through will not work here due to align */ | ||
508 | nop; | ||
509 | |||
510 | C_ENTRY(sys_rt_sigreturn_wrapper): | 503 | C_ENTRY(sys_rt_sigreturn_wrapper): |
511 | swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ | 504 | swi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ |
512 | swi r4, r1, PTO+PT_R4; | 505 | swi r4, r1, PTO+PT_R4; |
@@ -711,15 +704,11 @@ C_ENTRY(ret_from_exc): | |||
711 | * (in a possibly modified form) after do_signal returns. | 704 | * (in a possibly modified form) after do_signal returns. |
712 | * store return registers separately because this macros is use | 705 | * store return registers separately because this macros is use |
713 | * for others exceptions */ | 706 | * for others exceptions */ |
714 | swi r3, r1, PTO + PT_R3; | ||
715 | swi r4, r1, PTO + PT_R4; | ||
716 | la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ | 707 | la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ |
717 | add r6, r0, r0; /* Arg 2: sigset_t *oldset */ | 708 | add r6, r0, r0; /* Arg 2: sigset_t *oldset */ |
718 | addi r7, r0, 0; /* Arg 3: int in_syscall */ | 709 | addi r7, r0, 0; /* Arg 3: int in_syscall */ |
719 | bralid r15, do_signal; /* Handle any signals */ | 710 | bralid r15, do_signal; /* Handle any signals */ |
720 | nop; | 711 | nop; |
721 | lwi r3, r1, PTO+PT_R3; /* restore saved r3, r4 registers */ | ||
722 | lwi r4, r1, PTO+PT_R4; | ||
723 | 712 | ||
724 | /* Finally, return to user state. */ | 713 | /* Finally, return to user state. */ |
725 | 1: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ | 714 | 1: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ |