mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	alpha: switch osf_sigprocmask() to use of sigprocmask()
get rid of a useless wrapper, while we are at it Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									32163f4b2c
								
							
						
					
					
						commit
						c52c2ddc1d
					
				
					 3 changed files with 11 additions and 46 deletions
				
			
		| 
						 | 
				
			
			@ -914,15 +914,6 @@ sys_execve:
 | 
			
		|||
	jmp	$31, do_sys_execve
 | 
			
		||||
.end sys_execve
 | 
			
		||||
 | 
			
		||||
	.align	4
 | 
			
		||||
	.globl	osf_sigprocmask
 | 
			
		||||
	.ent	osf_sigprocmask
 | 
			
		||||
osf_sigprocmask:
 | 
			
		||||
	.prologue 0
 | 
			
		||||
	mov	$sp, $18
 | 
			
		||||
	jmp	$31, sys_osf_sigprocmask
 | 
			
		||||
.end osf_sigprocmask
 | 
			
		||||
 | 
			
		||||
	.align	4
 | 
			
		||||
	.globl	alpha_ni_syscall
 | 
			
		||||
	.ent	alpha_ni_syscall
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,46 +41,20 @@ static void do_signal(struct pt_regs *, struct switch_stack *,
 | 
			
		|||
/*
 | 
			
		||||
 * The OSF/1 sigprocmask calling sequence is different from the
 | 
			
		||||
 * C sigprocmask() sequence..
 | 
			
		||||
 *
 | 
			
		||||
 * how:
 | 
			
		||||
 * 1 - SIG_BLOCK
 | 
			
		||||
 * 2 - SIG_UNBLOCK
 | 
			
		||||
 * 3 - SIG_SETMASK
 | 
			
		||||
 *
 | 
			
		||||
 * We change the range to -1 .. 1 in order to let gcc easily
 | 
			
		||||
 * use the conditional move instructions.
 | 
			
		||||
 *
 | 
			
		||||
 * Note that we don't need to acquire the kernel lock for SMP
 | 
			
		||||
 * operation, as all of this is local to this thread.
 | 
			
		||||
 */
 | 
			
		||||
SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask,
 | 
			
		||||
		struct pt_regs *, regs)
 | 
			
		||||
SYSCALL_DEFINE2(osf_sigprocmask, int, how, unsigned long, newmask)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long oldmask = -EINVAL;
 | 
			
		||||
	sigset_t oldmask;
 | 
			
		||||
	sigset_t mask;
 | 
			
		||||
	unsigned long res;
 | 
			
		||||
 | 
			
		||||
	if ((unsigned long)how-1 <= 2) {
 | 
			
		||||
		long sign = how-2;		/* -1 .. 1 */
 | 
			
		||||
		unsigned long block, unblock;
 | 
			
		||||
 | 
			
		||||
		newmask &= _BLOCKABLE;
 | 
			
		||||
		spin_lock_irq(¤t->sighand->siglock);
 | 
			
		||||
		oldmask = current->blocked.sig[0];
 | 
			
		||||
 | 
			
		||||
		unblock = oldmask & ~newmask;
 | 
			
		||||
		block = oldmask | newmask;
 | 
			
		||||
		if (!sign)
 | 
			
		||||
			block = unblock;
 | 
			
		||||
		if (sign <= 0)
 | 
			
		||||
			newmask = block;
 | 
			
		||||
		if (_NSIG_WORDS > 1 && sign > 0)
 | 
			
		||||
			sigemptyset(¤t->blocked);
 | 
			
		||||
		current->blocked.sig[0] = newmask;
 | 
			
		||||
		recalc_sigpending();
 | 
			
		||||
		spin_unlock_irq(¤t->sighand->siglock);
 | 
			
		||||
 | 
			
		||||
		regs->r0 = 0;		/* special no error return */
 | 
			
		||||
	siginitset(&mask, newmask & ~_BLOCKABLE);
 | 
			
		||||
	res = siprocmask(how, &mask, &oldmask);
 | 
			
		||||
	if (!res) {
 | 
			
		||||
		force_successful_syscall_return();
 | 
			
		||||
		res = oldmask->sig[0];
 | 
			
		||||
	}
 | 
			
		||||
	return oldmask;
 | 
			
		||||
	return res;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SYSCALL_DEFINE3(osf_sigaction, int, sig,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,7 +58,7 @@ sys_call_table:
 | 
			
		|||
	.quad sys_open				/* 45 */
 | 
			
		||||
	.quad alpha_ni_syscall
 | 
			
		||||
	.quad sys_getxgid
 | 
			
		||||
	.quad osf_sigprocmask
 | 
			
		||||
	.quad sys_osf_sigprocmask
 | 
			
		||||
	.quad alpha_ni_syscall
 | 
			
		||||
	.quad alpha_ni_syscall			/* 50 */
 | 
			
		||||
	.quad sys_acct
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue