Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3befce8f0f79be8322aba885ed052b8ad927913d
Commit:     3befce8f0f79be8322aba885ed052b8ad927913d
Parent:     8d7e8240e66cecc84a375aceb26942d02b291198
Author:     Chris Zankel <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 12 12:22:15 2008 -0800
Committer:  Chris Zankel <[EMAIL PROTECTED]>
CommitDate: Wed Feb 13 17:12:15 2008 -0800

    [XTENSA] Remove oldmask from sigcontext and fix register flush
    
    Remove oldmask from the sigcontext structure. Also update wmask
    and windowstart when we flush the AR registers to stack.
    
    Signed-off-by: Chris Zankel <[EMAIL PROTECTED]>
---
 arch/xtensa/kernel/signal.c     |   12 +++++-------
 include/asm-xtensa/sigcontext.h |    3 ---
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/arch/xtensa/kernel/signal.c b/arch/xtensa/kernel/signal.c
index 033aae0..42d9fd8 100644
--- a/arch/xtensa/kernel/signal.c
+++ b/arch/xtensa/kernel/signal.c
@@ -49,8 +49,6 @@ struct rt_sigframe
 /* 
  * Flush register windows stored in pt_regs to stack.
  * Returns 1 for errors.
- *
- * Note that windowbase, windowstart, and wmask are not updated!
  */
 
 int
@@ -116,6 +114,9 @@ flush_window_regs_user(struct pt_regs *regs)
                base += inc;
        }
 
+       regs->wmask = 1;
+       regs->windowstart = 1 << wb;
+
        return 0;
 
 errout:
@@ -132,7 +133,7 @@ errout:
 
 static int
 setup_sigcontext(struct sigcontext __user *sc, cp_state_t *cpstate,
-                struct pt_regs *regs, unsigned long mask)
+                struct pt_regs *regs)
 {
        int err = 0;
 
@@ -155,8 +156,6 @@ setup_sigcontext(struct sigcontext __user *sc, cp_state_t 
*cpstate,
        err |= save_cpextra(cpstate);
        err |= __put_user(err ? NULL : cpstate, &sc->sc_cpstate);
 #endif
-       /* non-iBCS2 extensions.. */
-       err |= __put_user(mask, &sc->oldmask);
 
        return err;
 }
@@ -360,8 +359,7 @@ static void setup_frame(int sig, struct k_sigaction *ka, 
siginfo_t *info,
        err |= __put_user(sas_ss_flags(regs->areg[1]),
                          &frame->uc.uc_stack.ss_flags);
        err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
-       err |= setup_sigcontext(&frame->uc.uc_mcontext, &frame->cpstate,
-                               regs, set->sig[0]);
+       err |= setup_sigcontext(&frame->uc.uc_mcontext, &frame->cpstate, regs);
        err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
 
        /* Create sys_rt_sigreturn syscall in stack frame */
diff --git a/include/asm-xtensa/sigcontext.h b/include/asm-xtensa/sigcontext.h
index e3381ce..dff3c54 100644
--- a/include/asm-xtensa/sigcontext.h
+++ b/include/asm-xtensa/sigcontext.h
@@ -13,9 +13,6 @@
 
 
 struct sigcontext {
-       unsigned long   oldmask;
-
-       /* CPU registers */
        unsigned long sc_pc;
        unsigned long sc_ps;
        unsigned long sc_lbeg;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to