mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	new helper: signal_setup_done()
usual "call force_sigsegv or signal_delivered" logics. Takes ksignal instead of separate siginfo/k_sigaction. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
		
							parent
							
								
									ca86b5dce2
								
							
						
					
					
						commit
						2ce5da1757
					
				
					 2 changed files with 10 additions and 0 deletions
				
			
		|  | @ -286,6 +286,7 @@ struct ksignal { | |||
| }; | ||||
| 
 | ||||
| extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie); | ||||
| extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping); | ||||
| extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping); | ||||
| extern void exit_signals(struct task_struct *tsk); | ||||
| 
 | ||||
|  |  | |||
|  | @ -2396,6 +2396,15 @@ void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, | |||
| 	tracehook_signal_handler(sig, info, ka, regs, stepping); | ||||
| } | ||||
| 
 | ||||
| void signal_setup_done(int failed, struct ksignal *ksig, int stepping) | ||||
| { | ||||
| 	if (failed) | ||||
| 		force_sigsegv(ksig->sig, current); | ||||
| 	else | ||||
| 		signal_delivered(ksig->sig, &ksig->info, &ksig->ka, | ||||
| 			signal_pt_regs(), stepping); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * It could be that complete_signal() picked us to notify about the | ||||
|  * group-wide signal. Other threads should be notified now to take | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Al Viro
						Al Viro