Patch "MIPS: Fix sigreturn via VDSO on microMIPS kernel" has been added to the 4.5-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
MIPS: Fix sigreturn via VDSO on microMIPS kernel
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mips-fix-sigreturn-via-vdso-on-micromips-kernel.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
13eb192d10bcc9ac518d57356179071d603bcb4eMon Sep 17 00:00:00 2001
From: James Hogan <[email protected]>
Date: Tue, 24 May 2016 09:35:10 +0100
Subject: MIPS: Fix sigreturn via VDSO on microMIPS kernel
From: James Hogan <[email protected]>
commit 13eb192d10bcc9ac518d57356179071d603bcb4e upstream.
In microMIPS kernels, handle_signal() sets the isa16 mode bit in the vdso address so that the sigreturn trampolines (which are offset from the VDSO) get executed as microMIPS.
However commit ebb5e78cc634 ("MIPS: Initial implementation of a VDSO") changed the offsets to come from the VDSO image, which already have the isa16 mode bit set correctly since they're extracted from the VDSO shared library symbol table.
Drop the isa16 mode bit handling from handle_signal() to fix sigreturn for cores which support both microMIPS and normal MIPS. This doesn't fix microMIPS only cores, since the VDSO is still built for normal MIPS, but thats a separate problem.
Patchwork: https://patchwork.linux-mips.org/patch/13348/
--- arch/mips/kernel/signal.c | 8 -------- 1 file changed, 8 deletions(-)
arch/mips/kernel/signal.c +0 -8
@@ -770,15 +770,7 @@ static void handle_signal(struct ksignalsigset_t *oldset =sigmask_to_save ();int ret;struct mips_abi *abi = current->thread.abi; -#ifdef CONFIG_CPU_MICROMIPS -void *vdso; -unsigned long tmp = (unsigned long )current->mm->context.vdso; - -set_isa16_mode (tmp); - vdso = (void *)tmp; -#else void *vdso = current->mm->context.vdso; -#endif if (regs->regs[0 ]) {switch (regs->regs[2 ]) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/mips64-r6-r2-emulation-bugfix.patch queue-4.5/mips-fix-uapi-include-in-exported-asm-siginfo.h.patch queue-4.5/mips-disable-preemption-during-prctl-pr_set_fp_mode.patch queue-4.5/mips-fix-sigreturn-via-vdso-on-micromips-kernel.patch queue-4.5/mips-fix-siginfo.h-to-use-strict-posix-types.patch queue-4.5/mips-don-t-unwind-to-user-mode-with-eva.patch queue-4.5/mips-vdso-build-with-fno-strict-aliasing.patch queue-4.5/mips-fix-watchpoint-restoration.patch queue-4.5/mips-build-micromips-vdso-for-micromips-kernels.patch queue-4.5/mips-math-emu-fix-jalr-emulation-when-rd-0.patch queue-4.5/mips-fix-msa-ld_-st_-asm-macros-to-use-ptr_addu.patch queue-4.5/mips-avoid-using-unwind_stack-with-usermode.patch queue-4.5/mips-prevent-restoration-of-msa-context-in-non-msa-kernels.patch queue-4.5/mips-use-copy_s.fmt-rather-than-copy_u.fmt.patch