linux/arch
Eric W. Biederman 62bd9eac5f signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
commit 95bf9d646c upstream.

When an instruction to save or restore a register from the stack fails
in _save_fp_context or _restore_fp_context return with -EFAULT.  This
change was made to r2300_fpu.S[1] but it looks like it got lost with
the introduction of EX2[2].  This is also what the other implementation
of _save_fp_context and _restore_fp_context in r4k_fpu.S does, and
what is needed for the callers to be able to handle the error.

Furthermore calling do_exit(SIGSEGV) from bad_stack is wrong because
it does not terminate the entire process it just terminates a single
thread.

As the changed code was the only caller of arch/mips/kernel/syscall.c:bad_stack
remove the problematic and now unused helper function.

Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Maciej Rozycki <macro@orcam.me.uk>
Cc: linux-mips@vger.kernel.org
[1] 35938a00ba ("MIPS: Fix ISA I FP sigcontext access violation handling")
[2] f92722dc45 ("MIPS: Correct MIPS I FP sigcontext layout")
Cc: stable@vger.kernel.org
Fixes: f92722dc45 ("MIPS: Correct MIPS I FP sigcontext layout")
Acked-by: Maciej W. Rozycki <macro@orcam.me.uk>
Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Link: https://lkml.kernel.org/r/20211020174406.17889-5-ebiederm@xmission.com
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-18 14:03:47 +01:00
..
alpha alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile 2021-09-30 10:11:07 +02:00
arc ARC: export clear_user_page() for modules 2021-09-22 12:28:04 +02:00
arm ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode 2021-11-18 14:03:42 +01:00
arm64 bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT 2021-11-18 14:03:42 +01:00
c6x
csky csky: Fixup regs.sr broken in ptrace 2021-10-20 11:44:58 +02:00
h8300
hexagon hexagon: use common DISCARDS macro 2021-07-20 16:05:53 +02:00
ia64 ia64: kprobes: Fix to pass correct trampoline address to the handler 2021-11-18 14:03:44 +01:00
m68k m68k: Handle arrivals of multiple signals correctly 2021-10-17 10:43:32 +02:00
microblaze
mips signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT 2021-11-18 14:03:47 +01:00
nds32 nds32: fix up stack guard gap 2021-07-28 14:35:46 +02:00
nios2 nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST 2021-11-02 19:48:23 +01:00
openrisc openrisc: don't printk() unconditionally 2021-09-18 13:40:13 +02:00
parisc parisc: Fix ptrace check on syscall return 2021-11-18 14:03:37 +01:00
powerpc powerpc/bpf: Fix BPF_MOD when imm == 1 2021-11-02 19:48:18 +01:00
riscv riscv: Fix asan-stack clang build 2021-11-02 19:48:25 +01:00
s390 KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu 2021-11-02 19:48:24 +01:00
sh sched/core: Initialize the idle task with preemption disabled 2021-07-14 16:55:50 +02:00
sparc sparc64: fix pci_iounmap() when CONFIG_PCI is not set 2021-10-09 14:40:56 +02:00
um um: virtio_uml: fix memory leak on init failures 2021-09-26 14:08:57 +02:00
x86 perf/x86/intel/uncore: Fix Intel ICX IIO event constraints 2021-11-18 14:03:47 +01:00
xtensa xtensa: xtfpga: Try software restart before simulating CPU reset 2021-10-27 09:56:47 +02:00
.gitignore
Kconfig