[MIPS] Fix struct sigcontext for N32 userland
The kernel use 64-bit for sc_regs[0], and both N32/N64 userland expects it was 64-bit. But size of 'long' on N32 is actually 32-bit. So this definition make some confusion. Use __u32 and __u64 for N32/N64 sigcontext to get rid of this confusion. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
f49a747c4a
Коммит
269dd2b252
|
@ -42,6 +42,7 @@ struct sigcontext {
|
|||
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
/*
|
||||
* Keep this struct definition in sync with the sigcontext fragment
|
||||
* in arch/mips/tools/offset.c
|
||||
|
@ -53,27 +54,25 @@ struct sigcontext {
|
|||
* entries, add sc_dsp and sc_reserved for padding. No prisoners.
|
||||
*/
|
||||
struct sigcontext {
|
||||
unsigned long sc_regs[32];
|
||||
unsigned long sc_fpregs[32];
|
||||
unsigned long sc_mdhi;
|
||||
unsigned long sc_hi1;
|
||||
unsigned long sc_hi2;
|
||||
unsigned long sc_hi3;
|
||||
unsigned long sc_mdlo;
|
||||
unsigned long sc_lo1;
|
||||
unsigned long sc_lo2;
|
||||
unsigned long sc_lo3;
|
||||
unsigned long sc_pc;
|
||||
unsigned int sc_fpc_csr;
|
||||
unsigned int sc_used_math;
|
||||
unsigned int sc_dsp;
|
||||
unsigned int sc_reserved;
|
||||
__u64 sc_regs[32];
|
||||
__u64 sc_fpregs[32];
|
||||
__u64 sc_mdhi;
|
||||
__u64 sc_hi1;
|
||||
__u64 sc_hi2;
|
||||
__u64 sc_hi3;
|
||||
__u64 sc_mdlo;
|
||||
__u64 sc_lo1;
|
||||
__u64 sc_lo2;
|
||||
__u64 sc_lo3;
|
||||
__u64 sc_pc;
|
||||
__u32 sc_fpc_csr;
|
||||
__u32 sc_used_math;
|
||||
__u32 sc_dsp;
|
||||
__u32 sc_reserved;
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
|
||||
struct sigcontext32 {
|
||||
__u32 sc_regmask; /* Unused */
|
||||
__u32 sc_status; /* Unused */
|
||||
|
|
Загрузка…
Ссылка в новой задаче