Loading arch/parisc/kernel/syscall.S +18 −4 Original line number Diff line number Diff line Loading @@ -227,8 +227,7 @@ linux_gateway_entry: or,= %r2,%r2,%r2 ldo R%sys_call_table64(%r1), %r19 #else ldil L%sys_call_table, %r1 ldo R%sys_call_table(%r1), %r19 load32 sys_call_table, %r19 #endif comiclr,>> __NR_Linux_syscalls, %r20, %r0 b,n .Lsyscall_nosys Loading Loading @@ -331,8 +330,6 @@ tracesys_next: * task->thread.regs.gr[20] above. */ copy %ret0,%r20 ldil L%sys_call_table,%r1 ldo R%sys_call_table(%r1), %r19 ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ LDREG TI_TASK(%r1), %r1 Loading @@ -354,6 +351,23 @@ tracesys_next: comiclr,>> __NR_Linux_syscalls, %r20, %r0 b,n .Ltracesys_nosys /* Note! We cannot use the syscall table that is mapped nearby since the gateway page is mapped execute-only. */ #ifdef CONFIG_64BIT LDREG TASK_PT_GR30(%r1), %r19 /* get users sp back */ extrd,u %r19,63,1,%r2 /* W hidden in bottom bit */ ldil L%sys_call_table, %r1 or,= %r2,%r2,%r2 addil L%(sys_call_table64-sys_call_table), %r1 ldo R%sys_call_table(%r1), %r19 or,= %r2,%r2,%r2 ldo R%sys_call_table64(%r1), %r19 #else load32 sys_call_table, %r19 #endif LDREGX %r20(%r19), %r19 /* If this is a sys_rt_sigreturn call, and the signal was received Loading Loading
arch/parisc/kernel/syscall.S +18 −4 Original line number Diff line number Diff line Loading @@ -227,8 +227,7 @@ linux_gateway_entry: or,= %r2,%r2,%r2 ldo R%sys_call_table64(%r1), %r19 #else ldil L%sys_call_table, %r1 ldo R%sys_call_table(%r1), %r19 load32 sys_call_table, %r19 #endif comiclr,>> __NR_Linux_syscalls, %r20, %r0 b,n .Lsyscall_nosys Loading Loading @@ -331,8 +330,6 @@ tracesys_next: * task->thread.regs.gr[20] above. */ copy %ret0,%r20 ldil L%sys_call_table,%r1 ldo R%sys_call_table(%r1), %r19 ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ LDREG TI_TASK(%r1), %r1 Loading @@ -354,6 +351,23 @@ tracesys_next: comiclr,>> __NR_Linux_syscalls, %r20, %r0 b,n .Ltracesys_nosys /* Note! We cannot use the syscall table that is mapped nearby since the gateway page is mapped execute-only. */ #ifdef CONFIG_64BIT LDREG TASK_PT_GR30(%r1), %r19 /* get users sp back */ extrd,u %r19,63,1,%r2 /* W hidden in bottom bit */ ldil L%sys_call_table, %r1 or,= %r2,%r2,%r2 addil L%(sys_call_table64-sys_call_table), %r1 ldo R%sys_call_table(%r1), %r19 or,= %r2,%r2,%r2 ldo R%sys_call_table64(%r1), %r19 #else load32 sys_call_table, %r19 #endif LDREGX %r20(%r19), %r19 /* If this is a sys_rt_sigreturn call, and the signal was received Loading