signal.c (a8b3e6f10f08f66ae1072efd087b30966a3654f6) | signal.c (69be8f189653cd81aae5a74e26615b12871bb72e) |
---|---|
1/* 2 * linux/arch/arm/kernel/signal.c 3 * 4 * Copyright (C) 1995-2002 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 644 unchanged lines hidden (view full) --- 653 /* 654 * Check that the resulting registers are actually sane. 655 */ 656 ret |= !valid_user_regs(regs); 657 658 /* 659 * Block the signal if we were unsuccessful. 660 */ | 1/* 2 * linux/arch/arm/kernel/signal.c 3 * 4 * Copyright (C) 1995-2002 Russell King 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. --- 644 unchanged lines hidden (view full) --- 653 /* 654 * Check that the resulting registers are actually sane. 655 */ 656 ret |= !valid_user_regs(regs); 657 658 /* 659 * Block the signal if we were unsuccessful. 660 */ |
661 if (ret != 0 || !(ka->sa.sa_flags & SA_NODEFER)) { | 661 if (ret != 0) { |
662 spin_lock_irq(&tsk->sighand->siglock); 663 sigorsets(&tsk->blocked, &tsk->blocked, 664 &ka->sa.sa_mask); | 662 spin_lock_irq(&tsk->sighand->siglock); 663 sigorsets(&tsk->blocked, &tsk->blocked, 664 &ka->sa.sa_mask); |
665 sigaddset(&tsk->blocked, sig); | 665 if (!(ka->sa.sa_flags & SA_NODEFER)) 666 sigaddset(&tsk->blocked, sig); |
666 recalc_sigpending(); 667 spin_unlock_irq(&tsk->sighand->siglock); 668 } 669 670 if (ret == 0) 671 return; 672 673 force_sigsegv(sig, tsk); --- 84 unchanged lines hidden --- | 667 recalc_sigpending(); 668 spin_unlock_irq(&tsk->sighand->siglock); 669 } 670 671 if (ret == 0) 672 return; 673 674 force_sigsegv(sig, tsk); --- 84 unchanged lines hidden --- |