powerpc/kernel: Make syscall_exit a local label
Currently when we back trace something that is in a syscall we see something like this: [c000000000000000] [c000000000000000] SyS_read+0x6c/0x110 [c000000000000000] [c000000000000000] syscall_exit+0x0/0x98 Although it's entirely correct, seeing syscall_exit at the bottom can be confusing - we were exiting from a syscall and then called SyS_read() ? If we instead change syscall_exit to be a local label we get something more intuitive: [c0000001fa46fde0] [c00000000026719c] SyS_read+0x6c/0x110 [c0000001fa46fe30] [c000000000009264] system_call+0x38/0xd0 ie. we were handling a system call, and it was SyS_read(). Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
6f963ec2d6
commit
4c3b216861
|
@ -178,7 +178,7 @@ system_call: /* label this so stack traces look sane */
|
||||||
mtctr r12
|
mtctr r12
|
||||||
bctrl /* Call handler */
|
bctrl /* Call handler */
|
||||||
|
|
||||||
syscall_exit:
|
.Lsyscall_exit:
|
||||||
std r3,RESULT(r1)
|
std r3,RESULT(r1)
|
||||||
#ifdef SHOW_SYSCALLS
|
#ifdef SHOW_SYSCALLS
|
||||||
bl do_show_syscall_exit
|
bl do_show_syscall_exit
|
||||||
|
@ -270,7 +270,7 @@ syscall_dotrace:
|
||||||
|
|
||||||
syscall_enosys:
|
syscall_enosys:
|
||||||
li r3,-ENOSYS
|
li r3,-ENOSYS
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
syscall_exit_work:
|
syscall_exit_work:
|
||||||
#ifdef CONFIG_PPC_BOOK3S
|
#ifdef CONFIG_PPC_BOOK3S
|
||||||
|
@ -347,33 +347,33 @@ _GLOBAL(save_nvgprs)
|
||||||
_GLOBAL(ppc_fork)
|
_GLOBAL(ppc_fork)
|
||||||
bl save_nvgprs
|
bl save_nvgprs
|
||||||
bl sys_fork
|
bl sys_fork
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
_GLOBAL(ppc_vfork)
|
_GLOBAL(ppc_vfork)
|
||||||
bl save_nvgprs
|
bl save_nvgprs
|
||||||
bl sys_vfork
|
bl sys_vfork
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
_GLOBAL(ppc_clone)
|
_GLOBAL(ppc_clone)
|
||||||
bl save_nvgprs
|
bl save_nvgprs
|
||||||
bl sys_clone
|
bl sys_clone
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
_GLOBAL(ppc32_swapcontext)
|
_GLOBAL(ppc32_swapcontext)
|
||||||
bl save_nvgprs
|
bl save_nvgprs
|
||||||
bl compat_sys_swapcontext
|
bl compat_sys_swapcontext
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
_GLOBAL(ppc64_swapcontext)
|
_GLOBAL(ppc64_swapcontext)
|
||||||
bl save_nvgprs
|
bl save_nvgprs
|
||||||
bl sys_swapcontext
|
bl sys_swapcontext
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
_GLOBAL(ret_from_fork)
|
_GLOBAL(ret_from_fork)
|
||||||
bl schedule_tail
|
bl schedule_tail
|
||||||
REST_NVGPRS(r1)
|
REST_NVGPRS(r1)
|
||||||
li r3,0
|
li r3,0
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
_GLOBAL(ret_from_kernel_thread)
|
_GLOBAL(ret_from_kernel_thread)
|
||||||
bl schedule_tail
|
bl schedule_tail
|
||||||
|
@ -385,7 +385,7 @@ _GLOBAL(ret_from_kernel_thread)
|
||||||
#endif
|
#endif
|
||||||
blrl
|
blrl
|
||||||
li r3,0
|
li r3,0
|
||||||
b syscall_exit
|
b .Lsyscall_exit
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine switches between two different tasks. The process
|
* This routine switches between two different tasks. The process
|
||||||
|
|
Loading…
Reference in New Issue