]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "MIPS: Save/restore MSA context around signals"
authorPaul Burton <paul.burton@imgtec.com>
Wed, 18 Jun 2014 14:00:46 +0000 (15:00 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 26 Jun 2014 09:48:18 +0000 (10:48 +0100)
commitc655b81321fcb3877d2d31842bd70d372be5793c
tree31c380b37b0b79ad1e1ba180c87e63968923111e
parent58366d5ec7d541086471e55ce63642db21e88765
Revert "MIPS: Save/restore MSA context around signals"

This reverts commit 699ee42a76b0 "MIPS: Save/restore MSA context around
signals" and the MSA parts of 05f1ceebf1e6 "MIPS: kernel: signal:
Prevent save/restore FPU context in user memory" (the restore path of
which appears incorrect anyway...).

The reverted patch took care not to break compatibility with userland
users of struct sigcontext, but inadvertantly changed the offset of the
uc_sigmask field of struct ucontext. Thus Linux v3.15 breaks the
userland ABI. The MSA context will need to be saved via some other
opt-in mechanism, but for now revert the change to reduce the fallout.

This will have minimal impact upon use of MSA since the only supported
CPU which includes it (the P5600) is 32-bit and therefore requires that
the experimental CONFIG_MIPS_O32_FP64_SUPPORT Kconfig option be selected
before the kernel will set FR=1 for a task, a requirement for MSA use.
Thus the users of MSA are limited to known small groups of people & this
patch won't be breaking any previously working MSA-using userland
outside of experimental settings.

[ralf@linux-mips.org: Fixed rejects.]

Cc: stable@vger.kernel.org
Reported-by: Joseph S. Myers <joseph@codesourcery.com>
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: stable@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/7107/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/sigcontext.h
arch/mips/include/uapi/asm/sigcontext.h
arch/mips/kernel/asm-offsets.c
arch/mips/kernel/r4k_fpu.S
arch/mips/kernel/signal.c
arch/mips/kernel/signal32.c