Skip to content

Commit

Permalink
MIPS: kernel: scalls: Skip the syscall if denied by the seccomp filter
Browse files Browse the repository at this point in the history
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Reviewed-by: Paul Burton <paul.burton@imgtec.com>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/6399/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Markos Chandras authored and Ralf Baechle committed Mar 26, 2014
1 parent 1225eb8 commit 9d37c40
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 4 deletions.
4 changes: 3 additions & 1 deletion arch/mips/kernel/scall32-o32.S
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ syscall_trace_entry:
move a0, sp
jal syscall_trace_enter

bltz v0, 2f # seccomp failed? Skip syscall

move t0, s0
RESTORE_STATIC
lw a0, PT_R4(sp) # Restore argument registers
Expand All @@ -138,7 +140,7 @@ syscall_trace_entry:
sw t1, PT_R0(sp) # save it for syscall restarting
1: sw v0, PT_R2(sp) # result

j syscall_exit
2: j syscall_exit

/* ------------------------------------------------------------------------ */

Expand Down
4 changes: 3 additions & 1 deletion arch/mips/kernel/scall64-64.S
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ syscall_trace_entry:
move a0, sp
jal syscall_trace_enter

bltz v0, 2f # seccomp failed? Skip syscall

move t0, s0
RESTORE_STATIC
ld a0, PT_R4(sp) # Restore argument registers
Expand All @@ -102,7 +104,7 @@ syscall_trace_entry:
sd t1, PT_R0(sp) # save it for syscall restarting
1: sd v0, PT_R2(sp) # result

j syscall_exit
2: j syscall_exit

illegal_syscall:
/* This also isn't a 64-bit syscall, throw an error. */
Expand Down
4 changes: 3 additions & 1 deletion arch/mips/kernel/scall64-n32.S
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ n32_syscall_trace_entry:
move a0, sp
jal syscall_trace_enter

bltz v0, 2f # seccomp failed? Skip syscall

move t0, s0
RESTORE_STATIC
ld a0, PT_R4(sp) # Restore argument registers
Expand All @@ -94,7 +96,7 @@ n32_syscall_trace_entry:
sd t1, PT_R0(sp) # save it for syscall restarting
1: sd v0, PT_R2(sp) # result

j syscall_exit
2: j syscall_exit

not_n32_scall:
/* This is not an n32 compatibility syscall, pass it on to
Expand Down
4 changes: 3 additions & 1 deletion arch/mips/kernel/scall64-o32.S
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ trace_a_syscall:
move a0, sp
jal syscall_trace_enter

bltz v0, 2f # seccomp failed? Skip syscall

move t0, s0
RESTORE_STATIC
ld a0, PT_R4(sp) # Restore argument registers
Expand All @@ -136,7 +138,7 @@ trace_a_syscall:
sd t1, PT_R0(sp) # save it for syscall restarting
1: sd v0, PT_R2(sp) # result

j syscall_exit
2: j syscall_exit

/* ------------------------------------------------------------------------ */

Expand Down

0 comments on commit 9d37c40

Please sign in to comment.