forked from mirrors/linux
		
	 16f77de82f
			
		
	
	
		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>
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1 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 */
 |