diff options
Diffstat (limited to 'arch/s390/kernel/signal.c')
| -rw-r--r-- | arch/s390/kernel/signal.c | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 05a85bc14c9..7f6f9f35454 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c @@ -460,9 +460,9 @@ void do_signal(struct pt_regs *regs)  						     regs->svc_code >> 16);  				break;  			} -			/* No longer in a system call */ -			clear_thread_flag(TIF_SYSCALL);  		} +		/* No longer in a system call */ +		clear_thread_flag(TIF_SYSCALL);  		if ((is_compat_task() ?  		     handle_signal32(signr, &ka, &info, oldset, regs) : @@ -486,6 +486,7 @@ void do_signal(struct pt_regs *regs)  	}  	/* No handlers present - check for system call restart */ +	clear_thread_flag(TIF_SYSCALL);  	if (current_thread_info()->system_call) {  		regs->svc_code = current_thread_info()->system_call;  		switch (regs->gprs[2]) { @@ -500,9 +501,6 @@ void do_signal(struct pt_regs *regs)  			regs->gprs[2] = regs->orig_gpr2;  			set_thread_flag(TIF_SYSCALL);  			break; -		default: -			clear_thread_flag(TIF_SYSCALL); -			break;  		}  	}  |