diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-13 15:00:22 +0000 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-13 15:00:22 +0000 | 
| commit | 4de3a8e101150feaefa1139611a50ff37467f33e (patch) | |
| tree | daada742542518b02d7db7c5d32e715eaa5f166d /arch/unicore32/kernel/signal.c | |
| parent | 294064f58953f9964e5945424b09c51800330a83 (diff) | |
| parent | 099469502f62fbe0d7e4f0b83a2f22538367f734 (diff) | |
| download | olio-linux-3.10-4de3a8e101150feaefa1139611a50ff37467f33e.tar.xz olio-linux-3.10-4de3a8e101150feaefa1139611a50ff37467f33e.zip  | |
Merge branch 'master' into fixes
Diffstat (limited to 'arch/unicore32/kernel/signal.c')
| -rw-r--r-- | arch/unicore32/kernel/signal.c | 15 | 
1 files changed, 5 insertions, 10 deletions
diff --git a/arch/unicore32/kernel/signal.c b/arch/unicore32/kernel/signal.c index b163fca5678..911b549a6df 100644 --- a/arch/unicore32/kernel/signal.c +++ b/arch/unicore32/kernel/signal.c @@ -63,10 +63,7 @@ static int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf)  	err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set));  	if (err == 0) {  		sigdelsetmask(&set, ~_BLOCKABLE); -		spin_lock_irq(¤t->sighand->siglock); -		current->blocked = set; -		recalc_sigpending(); -		spin_unlock_irq(¤t->sighand->siglock); +		set_current_blocked(&set);  	}  	err |= __get_user(regs->UCreg_00, &sf->uc.uc_mcontext.regs.UCreg_00); @@ -321,6 +318,7 @@ static int handle_signal(unsigned long sig, struct k_sigaction *ka,  {  	struct thread_info *thread = current_thread_info();  	struct task_struct *tsk = current; +	sigset_t blocked;  	int usig = sig;  	int ret; @@ -372,13 +370,10 @@ static int handle_signal(unsigned long sig, struct k_sigaction *ka,  	/*  	 * Block the signal if we were successful.  	 */ -	spin_lock_irq(&tsk->sighand->siglock); -	sigorsets(&tsk->blocked, &tsk->blocked, -		  &ka->sa.sa_mask); +	sigorsets(&blocked, &tsk->blocked, &ka->sa.sa_mask);  	if (!(ka->sa.sa_flags & SA_NODEFER)) -		sigaddset(&tsk->blocked, sig); -	recalc_sigpending(); -	spin_unlock_irq(&tsk->sighand->siglock); +		sigaddset(&blocked, sig); +	set_current_blocked(&blocked);  	return 0;  }  |