mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
16f77de82f
This reverts commiteec43a224c
"MIPS: Save/restore MSA context around signals" and the MSA parts ofca750649e0
"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>
38 lines
1.0 KiB
C
38 lines
1.0 KiB
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright (C) 1996, 1997, 1999 by Ralf Baechle
|
|
* Copyright (C) 1999 Silicon Graphics, Inc.
|
|
*/
|
|
#ifndef _ASM_SIGCONTEXT_H
|
|
#define _ASM_SIGCONTEXT_H
|
|
|
|
#include <uapi/asm/sigcontext.h>
|
|
|
|
#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
|
|
|
|
struct sigcontext32 {
|
|
__u32 sc_regmask; /* Unused */
|
|
__u32 sc_status; /* Unused */
|
|
__u64 sc_pc;
|
|
__u64 sc_regs[32];
|
|
__u64 sc_fpregs[32];
|
|
__u32 sc_acx; /* Only MIPS32; was sc_ownedfp */
|
|
__u32 sc_fpc_csr;
|
|
__u32 sc_fpc_eir; /* Unused */
|
|
__u32 sc_used_math;
|
|
__u32 sc_dsp; /* dsp status, was sc_ssflags */
|
|
__u64 sc_mdhi;
|
|
__u64 sc_mdlo;
|
|
__u32 sc_hi1; /* Was sc_cause */
|
|
__u32 sc_lo1; /* Was sc_badvaddr */
|
|
__u32 sc_hi2; /* Was sc_sigset[4] */
|
|
__u32 sc_lo2;
|
|
__u32 sc_hi3;
|
|
__u32 sc_lo3;
|
|
};
|
|
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
|
|
#endif /* _ASM_SIGCONTEXT_H */
|