[MIPS] signal32: no need to save c0_status register in setup_sigcontext32()
authorFranck Bui-Huu <fbuihuu@gmail.com>
Mon, 5 Feb 2007 14:24:26 +0000 (15:24 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 10 Feb 2007 22:38:47 +0000 (22:38 +0000)
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 <fbuihuu@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/asm-offsets.c
arch/mips/kernel/signal32.c
include/asm-mips/sigcontext.h

index ea7df4b8da338d92822f35d72d96e52324415429..c0b089d47181bcd946f740571f0aed7b788c517b 100644 (file)
@@ -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);
index 5d102efbdbea55bec75614c02616319e62437190..0994d6e1d69151402f331c1c7ffb3a23016c34e2 100644 (file)
@@ -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++)
index cefa657dd04a86268923122e5bb8fce3ec1fa480..3c175a7e43450ceb7ee3b4a667628ef4043811c5 100644 (file)
@@ -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];