mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 18:20:53 +07:00
Blackfin: check for bad syscalls after tracing it
We want to report all system calls (even invalid ones) to the tracing layers, so check the NR only after we've notified. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
600482c13d
commit
9e228ee9ea
@ -626,13 +626,6 @@ ENTRY(_system_call)
|
|||||||
p0 = [sp + PT_ORIG_P0];
|
p0 = [sp + PT_ORIG_P0];
|
||||||
#endif /* CONFIG_IPIPE */
|
#endif /* CONFIG_IPIPE */
|
||||||
|
|
||||||
/* Check the System Call */
|
|
||||||
r7 = __NR_syscall;
|
|
||||||
/* System call number is passed in P0 */
|
|
||||||
r6 = p0;
|
|
||||||
cc = r6 < r7;
|
|
||||||
if ! cc jump .Lbadsys;
|
|
||||||
|
|
||||||
/* are we tracing syscalls?*/
|
/* are we tracing syscalls?*/
|
||||||
r7 = sp;
|
r7 = sp;
|
||||||
r6.l = lo(ALIGN_PAGE_MASK);
|
r6.l = lo(ALIGN_PAGE_MASK);
|
||||||
@ -645,6 +638,12 @@ ENTRY(_system_call)
|
|||||||
CC = BITTST(r7,TIF_SINGLESTEP);
|
CC = BITTST(r7,TIF_SINGLESTEP);
|
||||||
if CC JUMP _sys_trace;
|
if CC JUMP _sys_trace;
|
||||||
|
|
||||||
|
/* Make sure the system call # is valid */
|
||||||
|
p4 = __NR_syscall;
|
||||||
|
/* System call number is passed in P0 */
|
||||||
|
cc = p4 <= p0;
|
||||||
|
if cc jump .Lbadsys;
|
||||||
|
|
||||||
/* Execute the appropriate system call */
|
/* Execute the appropriate system call */
|
||||||
|
|
||||||
p4 = p0;
|
p4 = p0;
|
||||||
@ -741,9 +740,14 @@ _sys_trace:
|
|||||||
r0 = sp;
|
r0 = sp;
|
||||||
pseudo_long_call _syscall_trace_enter, p5;
|
pseudo_long_call _syscall_trace_enter, p5;
|
||||||
|
|
||||||
/* Execute the appropriate system call */
|
/* Make sure the system call # is valid */
|
||||||
|
|
||||||
p4 = [SP + PT_P0];
|
p4 = [SP + PT_P0];
|
||||||
|
p3 = __NR_syscall;
|
||||||
|
cc = p3 <= p4;
|
||||||
|
r0 = -ENOSYS;
|
||||||
|
if cc jump .Lsys_trace_badsys;
|
||||||
|
|
||||||
|
/* Execute the appropriate system call */
|
||||||
p5.l = _sys_call_table;
|
p5.l = _sys_call_table;
|
||||||
p5.h = _sys_call_table;
|
p5.h = _sys_call_table;
|
||||||
p5 = p5 + (p4 << 2);
|
p5 = p5 + (p4 << 2);
|
||||||
@ -761,6 +765,7 @@ _sys_trace:
|
|||||||
SP += -12;
|
SP += -12;
|
||||||
call (p5);
|
call (p5);
|
||||||
SP += 24;
|
SP += 24;
|
||||||
|
.Lsys_trace_badsys:
|
||||||
[sp + PT_R0] = r0;
|
[sp + PT_R0] = r0;
|
||||||
|
|
||||||
r0 = sp;
|
r0 = sp;
|
||||||
|
Loading…
Reference in New Issue
Block a user