/linux/arch/x86/kernel/ |
A D | signal.c | 347 restorer = ksig->ka.sa.sa_restorer; in __setup_frame() 587 restorer = ksig->ka.sa.sa_restorer; in x32_setup_rt_frame() 603 regs->di = ksig->sig; in x32_setup_rt_frame() 759 ksig->ka.sa.sa_flags & SA_X32_ABI; in is_x32_frame() 765 int usig = ksig->sig; in setup_rt_frame() 770 rseq_signal_deliver(ksig, regs); in setup_rt_frame() 773 if (is_ia32_frame(ksig)) { in setup_rt_frame() 778 } else if (is_x32_frame(ksig)) { in setup_rt_frame() 781 return __setup_rt_frame(ksig->sig, ksig, set, regs); in setup_rt_frame() 866 struct ksignal ksig; in arch_do_signal_or_restart() local [all …]
|
/linux/arch/h8300/kernel/ |
A D | signal.c | 165 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 170 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 184 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 185 ret = (unsigned char *)(ksig->ka.sa.sa_restorer); in setup_rt_frame() 201 regs->er0 = ksig->sig; in setup_rt_frame() 249 handle_restart(regs, &ksig->ka); in handle_signal() 251 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 253 signal_setup_done(ret, ksig, 0); in handle_signal() 263 struct ksignal ksig; in do_signal() local 267 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/csky/kernel/ |
A D | signal.c | 128 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 142 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 168 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 170 regs->a0 = ksig->sig; /* a0: signal number */ in setup_rt_frame() 182 rseq_signal_deliver(ksig, regs); in handle_signal() 197 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 210 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 212 signal_setup_done(ret, ksig, 0); in handle_signal() 217 struct ksignal ksig; in do_signal() local 219 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/um/kernel/ |
A D | signal.c | 49 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 69 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 82 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) && (sas_ss_flags(sp) == 0)) in handle_signal() 86 if (!(ksig->ka.sa.sa_flags & SA_SIGINFO)) in handle_signal() 87 err = setup_signal_stack_sc(sp, ksig, regs, oldset); in handle_signal() 90 err = setup_signal_stack_si(sp, ksig, regs, oldset); in handle_signal() 92 signal_setup_done(err, ksig, singlestep); in handle_signal() 97 struct ksignal ksig; in do_signal() local 100 while (get_signal(&ksig)) { in do_signal() 103 handle_signal(&ksig, regs); in do_signal()
|
/linux/arch/openrisc/kernel/ |
A D | signal.c | 129 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 136 sp = sigsp(sp, ksig); in get_sigframe() 156 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 162 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 163 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 204 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 208 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal() 227 struct ksignal ksig; in do_signal() local 262 if (get_signal(&ksig)) { in do_signal() 267 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { in do_signal() [all …]
|
/linux/arch/arm/kernel/ |
A D | signal.c | 344 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) in setup_return() 386 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return() 397 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return() 434 regs->ARM_r0 = ksig->sig; in setup_return() 509 rseq_signal_deliver(ksig, regs); in handle_signal() 514 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 517 ret = setup_frame(ksig, oldset, regs); in handle_signal() 524 signal_setup_done(ret, ksig, 0); in handle_signal() 539 struct ksignal ksig; in do_signal() local 577 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/sh/kernel/ |
A D | signal_32.c | 270 int err = 0, sig = ksig->sig; in setup_frame() 285 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 321 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame() 336 int err = 0, sig = ksig->sig; in setup_rt_frame() 355 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame() 439 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 440 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 442 ret = setup_frame(ksig, oldset, regs); in handle_signal() 458 struct ksignal ksig; in do_signal() local 469 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/riscv/kernel/ |
A D | signal.c | 166 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 180 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 184 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 217 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 225 current->comm, task_pid_nr(current), ksig->sig, in setup_rt_frame() 249 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 262 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 264 signal_setup_done(ret, ksig, 0); in handle_signal() 269 struct ksignal ksig; in do_signal() local 271 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/sparc/kernel/ |
A D | signal_32.c | 212 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 292 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame() 301 if (ksig->ka.ka_restorer) in setup_frame() 391 regs->u_regs[UREG_I0] = ksig->sig; in setup_rt_frame() 398 if (ksig->ka.ka_restorer) in setup_rt_frame() 423 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 426 err = setup_frame(ksig, regs, oldset); in handle_signal() 427 signal_setup_done(err, ksig, 0); in handle_signal() 457 struct ksignal ksig; in do_signal() local 482 has_handler = get_signal(&ksig); in do_signal() [all …]
|
A D | signal32.c | 276 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 381 force_sigsegv(ksig->sig); in setup_frame32() 457 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame32() 470 if (ksig->ka.ka_restorer) { in setup_frame32() 515 force_sigsegv(ksig->sig); in setup_rt_frame32() 589 regs->u_regs[UREG_I0] = ksig->sig; in setup_rt_frame32() 602 if (ksig->ka.ka_restorer) in setup_rt_frame32() 633 signal_setup_done(err, ksig, 0); in handle_signal32() 663 struct ksignal ksig; in do_signal32() local 666 bool has_handler = get_signal(&ksig); in do_signal32() [all …]
|
/linux/arch/microblaze/kernel/ |
A D | signal.c | 149 unsigned long sp = sigsp(regs->r1, ksig); in get_sigframe() 158 int err = 0, sig = ksig->sig; in setup_rt_frame() 163 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 168 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 169 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 219 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 265 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 281 struct ksignal ksig; in do_signal() local 289 if (get_signal(&ksig)) { in do_signal() 292 handle_restart(regs, &ksig.ka, 1); in do_signal() [all …]
|
/linux/arch/hexagon/kernel/ |
A D | signal.c | 31 unsigned long sp = sigsp(regs->r29, ksig); in get_sigframe() 96 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 103 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame() 108 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame() 125 | (unsigned long long)ksig->sig; in setup_rt_frame() 129 pt_set_elr(regs, (unsigned long)ksig->ka.sa.sa_handler); in setup_rt_frame() 154 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 174 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal() 184 struct ksignal ksig; in do_signal() local 189 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/nios2/kernel/ |
A D | signal.c | 174 usp = sigsp(usp, ksig); in get_sigframe() 186 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 188 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 207 regs->r4 = (unsigned long) ksig->sig; in setup_rt_frame() 214 force_sigsegv(ksig->sig); in setup_rt_frame() 227 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 229 signal_setup_done(ret, ksig, 0); in handle_signal() 236 struct ksignal ksig; in do_signal() local 267 if (get_signal(&ksig)) { in do_signal() 273 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { in do_signal() [all …]
|
/linux/arch/arc/kernel/ |
A D | signal.c | 251 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe() 294 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { in setup_rt_frame() 295 err |= copy_siginfo_to_user(&sf->info, &ksig->info); in setup_rt_frame() 316 regs->r0 = ksig->sig; in setup_rt_frame() 319 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 325 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) in setup_rt_frame() 396 failed = setup_rt_frame(ksig, oldset, regs); in handle_signal() 398 signal_setup_done(failed, ksig, 0); in handle_signal() 403 struct ksignal ksig; in do_signal() local 410 arc_restart_syscall(&ksig.ka, regs); in do_signal() [all …]
|
/linux/arch/s390/kernel/ |
A D | signal.c | 395 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 425 regs->gprs[2] = ksig->sig; in setup_rt_frame() 438 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 439 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 441 ret = setup_frame(ksig->sig, &ksig->ka, oldset, regs); in handle_signal() 458 struct ksignal ksig; in arch_do_signal_or_restart() local 469 if (has_signal && get_signal(&ksig)) { in arch_do_signal_or_restart() 480 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { in arch_do_signal_or_restart() 496 rseq_signal_deliver(&ksig, regs); in arch_do_signal_or_restart() 498 handle_signal32(&ksig, oldset, regs); in arch_do_signal_or_restart() [all …]
|
A D | compat_signal.c | 257 int sig = ksig->sig; in setup_frame32() 271 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_frame32() 303 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame32() 305 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_frame32() 356 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame32() 366 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame32() 368 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_rt_frame32() 398 regs->gprs[2] = ksig->sig; in setup_rt_frame32() 415 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal32() 416 ret = setup_rt_frame32(ksig, oldset, regs); in handle_signal32() [all …]
|
/linux/arch/powerpc/kernel/ |
A D | signal.c | 160 oldsp = sigsp(oldsp, ksig); in get_sigframe() 234 struct ksignal ksig = { .sig = 0 }; in do_signal() local 239 get_signal(&ksig); in do_signal() 242 check_syscall_restart(tsk->thread.regs, &ksig.ka, ksig.sig > 0); in do_signal() 244 if (ksig.sig <= 0) { in do_signal() 268 rseq_signal_deliver(&ksig, tsk->thread.regs); in do_signal() 271 if (ksig.ka.sa.sa_flags & SA_SIGINFO) in do_signal() 272 ret = handle_rt_signal32(&ksig, oldset, tsk); in do_signal() 274 ret = handle_signal32(&ksig, oldset, tsk); in do_signal() 276 ret = handle_rt_signal64(&ksig, oldset, tsk); in do_signal() [all …]
|
/linux/arch/x86/ia32/ |
A D | ia32_signal.c | 212 if (ksig->ka.sa.sa_flags & SA_ONSTACK) in get_sigframe() 213 sp = sigsp(sp, ksig); in get_sigframe() 216 !(ksig->ka.sa.sa_flags & SA_RESTORER) && in get_sigframe() 217 ksig->ka.sa.sa_restorer) in get_sigframe() 218 sp = (unsigned long) ksig->ka.sa.sa_restorer; in get_sigframe() 233 int ia32_setup_frame(int sig, struct ksignal *ksig, in ia32_setup_frame() argument 253 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in ia32_setup_frame() 254 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_frame() 280 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in ia32_setup_frame() 336 if (ksig->ka.sa.sa_flags & SA_RESTORER) in ia32_setup_rt_frame() [all …]
|
/linux/arch/ia64/kernel/ |
A D | signal.c | 236 if (ksig->ka.sa.sa_flags & SA_ONSTACK) { in setup_frame() 260 force_sigsegv(ksig->sig); in setup_frame() 268 force_sigsegv(ksig->sig); in setup_frame() 272 err = __put_user(ksig->sig, &frame->arg0); in setup_frame() 285 force_sigsegv(ksig->sig); in setup_frame() 320 int ret = setup_frame(ksig, sigmask_to_save(), scr); in handle_signal() 337 struct ksignal ksig; in ia64_do_signal() local 344 if (!get_signal(&ksig)) in ia64_do_signal() 362 if (ksig.sig <= 0) in ia64_do_signal() 373 if ((ksig.ka.sa.sa_flags & SA_RESTART) == 0) { in ia64_do_signal() [all …]
|
/linux/arch/alpha/kernel/ |
A D | signal.c | 344 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_frame() 360 regs->r16 = ksig->sig; /* a0: signal number */ in setup_frame() 398 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_rt_frame() 437 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 438 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 440 ret = setup_frame(ksig, oldset, regs); in handle_signal() 442 signal_setup_done(ret, ksig, 0); in handle_signal() 486 struct ksignal ksig; in do_signal() local 489 if (get_signal(&ksig)) { in do_signal() 494 syscall_restart(r0, r19, regs, &ksig.ka); in do_signal() [all …]
|
/linux/arch/parisc/kernel/ |
A D | signal.c | 248 frame = get_sigframe(&ksig->ka, usp, sigframe_size); in setup_rt_frame() 251 DBG(1,"setup_rt_frame: frame %p info %p\n", frame, ksig->info); in setup_rt_frame() 275 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 314 haddr = A(ksig->ka.sa.sa_handler); in setup_rt_frame() 381 regs->gr[26] = ksig->sig; /* signal number */ in setup_rt_frame() 419 ksig->sig, ksig->ka, ksig->info, oldset, regs); in handle_signal() 422 ret = setup_rt_frame(ksig, oldset, regs, in_syscall); in handle_signal() 573 struct ksignal ksig; in do_signal() local 578 if (get_signal(&ksig)) { in do_signal() 582 syscall_restart(regs, &ksig.ka); in do_signal() [all …]
|
/linux/arch/nds32/kernel/ |
A D | signal.c | 246 sp = (sigsp(sp, ksig) - framesize); in get_sigframe() 263 regs->uregs[0] = ksig->sig; in setup_return() 275 get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 287 setup_return(regs, ksig, frame); in setup_rt_frame() 288 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_rt_frame() 315 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 329 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 331 signal_setup_done(ret, ksig, 0); in handle_signal() 345 struct ksignal ksig; in do_signal() local 347 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/xtensa/kernel/ |
A D | signal.c | 341 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 345 int err = 0, sig = ksig->sig; in setup_frame() 364 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_frame() 365 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_frame() 376 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 377 ra = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame() 435 struct ksignal ksig; in do_signal() local 439 if (get_signal(&ksig)) { in do_signal() 455 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { in do_signal() 474 ret = setup_frame(&ksig, sigmask_to_save(), regs); in do_signal() [all …]
|
/linux/arch/x86/um/ |
A D | signal.c | 365 int err = 0, sig = ksig->sig; in setup_signal_stack_sc() 374 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_sc() 375 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_sc() 411 int err = 0, sig = ksig->sig; in setup_signal_stack_si() 419 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si() 420 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_si() 426 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_signal_stack_si() 492 int err = 0, sig = ksig->sig; in setup_signal_stack_si() 503 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_signal_stack_si() 532 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si() [all …]
|
/linux/arch/mips/kernel/ |
A D | signal.c | 572 sp = sigsp(sp, ksig); in get_sigframe() 732 regs->regs[ 4] = ksig->sig; in setup_frame() 779 regs->regs[ 4] = ksig->sig; in setup_rt_frame() 843 rseq_signal_deliver(ksig, regs); in handle_signal() 845 if (sig_uses_siginfo(&ksig->ka, abi)) in handle_signal() 847 ksig, regs, oldset); in handle_signal() 850 ksig, regs, oldset); in handle_signal() 852 signal_setup_done(ret, ksig, 0); in handle_signal() 857 struct ksignal ksig; in do_signal() local 859 if (get_signal(&ksig)) { in do_signal() [all …]
|