android_kernel_samsung_a7y1.../arch/mips/kernel
Aurelien Jarno 2f86833b3e MIPS: scall64-o32: Fix indirect syscall number load
commit 79b4a9cf0e2ea8203ce777c8d5cfa86c71eae86e upstream.

Commit 4c21b8fd8f14 (MIPS: seccomp: Handle indirect system calls (o32))
added indirect syscall detection for O32 processes running on MIPS64,
but it did not work correctly for big endian kernel/processes. The
reason is that the syscall number is loaded from ARG1 using the lw
instruction while this is a 64-bit value, so zero is loaded instead of
the syscall number.

Fix the code by using the ld instruction instead. When running a 32-bit
processes on a 64 bit CPU, the values are properly sign-extended, so it
ensures the value passed to syscall_trace_enter is correct.

Recent systemd versions with seccomp enabled whitelist the getpid
syscall for their internal  processes (e.g. systemd-journald), but call
it through syscall(SYS_getpid). This fix therefore allows O32 big endian
systems with a 64-bit kernel to run recent systemd versions.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Cc: <stable@vger.kernel.org> # v3.15+
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-06 16:38:39 +02:00
..
8250-platform.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
asm-offsets.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
binfmt_elfn32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
binfmt_elfo32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
bmips_vec.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
branch.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cevt-bcm1480.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cevt-ds1287.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cevt-gt641xx.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cevt-r4k.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cevt-sb1250.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cevt-txx9.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cps-vec-ns16550.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cps-vec.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cpu-bugs64.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cpu-probe.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crash_dump.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crash.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
csrc-bcm1480.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
csrc-ioasic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
csrc-r4k.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
csrc-sb1250.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
early_printk_8250.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
early_printk.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
elf.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
entry.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ftrace.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
genex.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gpio_txx9.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
head.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
i8253.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
idle.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
irq_txx9.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
irq-gt641xx.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
irq-msc01.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
irq-rm7000.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
irq.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
jump_label.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
kgdb.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
kprobes.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
linux32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
machine_kexec.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Makefile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mcount.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips_ksyms.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips_machine.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips-cm.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips-cpc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips-mt-fpaff.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips-mt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mips-r2-to-r6-emul.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
module-rela.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
module.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
octeon_switch.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
perf_event_mipsxx.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
perf_event.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pm-cps.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pm.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
proc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
process.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
prom.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ptrace.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ptrace32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
r4k_fpu.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
r4k_switch.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
r2300_fpu.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
r2300_switch.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
r6000_fpu.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
relocate_kernel.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
reset.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rtlx-cmp.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rtlx-mt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rtlx.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
scall32-o32.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
scall64-64.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
scall64-n32.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
scall64-o32.S MIPS: scall64-o32: Fix indirect syscall number load 2020-04-06 16:38:39 +02:00
segment.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
setup.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
signal_n32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
signal-common.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
signal.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
signal32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp-bmips.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp-cmp.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp-cps.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp-gic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp-mt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp-up.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
smp.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
spinlock_test.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
spram.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
stacktrace.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sync-r4k.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
syscall.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sysrq.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
time.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
topology.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
traps.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
unaligned.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
uprobes.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vdso.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vmlinux.lds.S A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vpe-cmp.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vpe-mt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vpe.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
watch.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30