if (current->pid == 1) { __sighandler_t handler;  spin_lock_irq(&current->sighand->siglock); handler = current->sighand->action[signr-1].sa.sa_handler; spin_unlock_irq(&current->sighand->siglock); if (handler == SIG_DFL) {  printk(KERN_CRIT "init has generated signal %d " "but has no handler for it\n", signr); do_exit(signr); } }
void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr){	siginfo_t info;	if (!user_mode(regs)) {		debugger(regs);		die("Exception in kernel mode", regs, signr);	}	info.si_signo = signr;	info.si_errno = 0;	info.si_code = code;	info.si_addr = (void __user *) addr;	force_sig_info(signr, &info, current);}