From 6bfe96616062acb75c2460f01acc79236a8ba0e8 Mon Sep 17 00:00:00 2001 From: Franck Bui-Huu Date: Mon, 5 Feb 2007 15:24:26 +0100 Subject: [PATCH] [MIPS] signal32: no need to save c0_status register in setup_sigcontext32() All the information in the MIPS c0_status register is priviledged. Nothing that would constitute part of the thread context. The one flag one could possibly argument about might be c0_status.fr but none of the ABIs or tools or application software can make use of it. So for consistency with restore_sigcontext32(), which does not restore c0_status register, this patch remove the saving part. Signed-off-by: Franck Bui-Huu Signed-off-by: Ralf Baechle --- arch/mips/kernel/asm-offsets.c | 1 - arch/mips/kernel/signal32.c | 1 - include/asm-mips/sigcontext.h | 4 ++-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c index ea7df4b8da33..c0b089d47181 100644 --- a/arch/mips/kernel/asm-offsets.c +++ b/arch/mips/kernel/asm-offsets.c @@ -249,7 +249,6 @@ void output_sc_defines(void) offset("#define SC_MDHI ", struct sigcontext, sc_mdhi); offset("#define SC_MDLO ", struct sigcontext, sc_mdlo); offset("#define SC_PC ", struct sigcontext, sc_pc); - offset("#define SC_STATUS ", struct sigcontext, sc_status); offset("#define SC_FPC_CSR ", struct sigcontext, sc_fpc_csr); offset("#define SC_FPC_EIR ", struct sigcontext, sc_fpc_eir); offset("#define SC_HI1 ", struct sigcontext, sc_hi1); diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index 5d102efbdbea..0994d6e1d691 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c @@ -170,7 +170,6 @@ static int setup_sigcontext32(struct pt_regs *regs, int i; err |= __put_user(regs->cp0_epc, &sc->sc_pc); - err |= __put_user(regs->cp0_status, &sc->sc_status); err |= __put_user(0, &sc->sc_regs[0]); for (i = 1; i < 32; i++) diff --git a/include/asm-mips/sigcontext.h b/include/asm-mips/sigcontext.h index cefa657dd04a..3c175a7e4345 100644 --- a/include/asm-mips/sigcontext.h +++ b/include/asm-mips/sigcontext.h @@ -19,7 +19,7 @@ */ struct sigcontext { unsigned int sc_regmask; /* Unused */ - unsigned int sc_status; + unsigned int sc_status; /* Unused */ unsigned long long sc_pc; unsigned long long sc_regs[32]; unsigned long long sc_fpregs[32]; @@ -76,7 +76,7 @@ struct sigcontext { struct sigcontext32 { __u32 sc_regmask; /* Unused */ - __u32 sc_status; + __u32 sc_status; /* Unused */ __u64 sc_pc; __u64 sc_regs[32]; __u64 sc_fpregs[32]; -- GitLab