Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2018df76d276bb4fe97b175bd5db0cdd128dfeb4
Commit:     2018df76d276bb4fe97b175bd5db0cdd128dfeb4
Parent:     a3ebdb6c423dff420168a3faf25c76e9e5f59258
Author:     Shi Weihua <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 15:58:26 2007 -0800
Committer:  Tony Luck <[EMAIL PROTECTED]>
CommitDate: Tue Dec 18 16:55:15 2007 -0800

    [IA64] signal: remove redundant code in setup_sigcontext()
    
    This patch removes some redundant code in the function setup_sigcontext().
    
    The registers ar.ccv,b7,r14,ar.csd,ar.ssd,r2-r3 and r16-r31 are not
    restored in restore_sigcontext() when (flags & IA64_SC_FLAG_IN_SYSCALL) is
    true.  So we don't need to zero those variables in setup_sigcontext().
    
    Signed-off-by: Shi Weihua <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
---
 arch/ia64/kernel/signal.c |   10 +---------
 1 files changed, 1 insertions(+), 9 deletions(-)

diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index 4c73009..309da35 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -280,15 +280,7 @@ setup_sigcontext (struct sigcontext __user *sc, sigset_t 
*mask, struct sigscratc
        err |= __copy_to_user(&sc->sc_gr[15], &scr->pt.r15, 8);         /* r15 
*/
        err |= __put_user(scr->pt.cr_iip + ia64_psr(&scr->pt)->ri, &sc->sc_ip);
 
-       if (flags & IA64_SC_FLAG_IN_SYSCALL) {
-               /* Clear scratch registers if the signal interrupted a system 
call. */
-               err |= __put_user(0, &sc->sc_ar_ccv);                           
/* ar.ccv */
-               err |= __put_user(0, &sc->sc_br[7]);                            
/* b7 */
-               err |= __put_user(0, &sc->sc_gr[14]);                           
/* r14 */
-               err |= __clear_user(&sc->sc_ar25, 2*8);                 /* 
ar.csd & ar.ssd */
-               err |= __clear_user(&sc->sc_gr[2], 2*8);                        
/* r2-r3 */
-               err |= __clear_user(&sc->sc_gr[16], 16*8);                      
/* r16-r31 */
-       } else {
+       if (!(flags & IA64_SC_FLAG_IN_SYSCALL)) {
                /* Copy scratch regs to sigcontext if the signal didn't 
interrupt a syscall. */
                err |= __put_user(scr->pt.ar_ccv, &sc->sc_ar_ccv);              
/* ar.ccv */
                err |= __put_user(scr->pt.b7, &sc->sc_br[7]);                   
/* b7 */
-
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