/linux/arch/x86/kernel/ |
H A D | signal_32.c | 249 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in ia32_setup_frame() 251 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in ia32_setup_frame() 252 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_frame() 265 unsafe_put_user(ksig->sig, &frame->sig, Efault); in ia32_setup_frame() 278 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in ia32_setup_frame() 281 regs->ax = ksig->sig; in ia32_setup_frame() 327 unsafe_put_user(ksig->sig, &frame->sig, Efault); in ia32_setup_rt_frame() 339 if (ksig->ka.sa.sa_flags & SA_RESTORER) in ia32_setup_rt_frame() 340 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_rt_frame() 360 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in ia32_setup_rt_frame() [all …]
|
H A D | shstk.c | 347 int setup_signal_shadow_stack(struct ksignal *ksig) in setup_signal_shadow_stack() argument 349 void __user *restorer = ksig->ka.sa.sa_restorer; in setup_signal_shadow_stack()
|
/linux/arch/mips/kernel/ |
H A D | signal_o32.c | 115 static int setup_frame_32(void *sig_return, struct ksignal *ksig, in setup_frame_32() argument 121 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame_32() 141 regs->regs[ 4] = ksig->sig; in setup_frame_32() 146 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame_32() 194 static int setup_rt_frame_32(void *sig_return, struct ksignal *ksig, in setup_rt_frame_32() argument 200 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_32() 205 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_32() 227 regs->regs[ 4] = ksig->sig; in setup_rt_frame_32() 232 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame_32()
|
H A D | signal_n32.c | 90 static int setup_rt_frame_n32(void *sig_return, struct ksignal *ksig, in setup_rt_frame_n32() argument 96 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_n32() 101 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_n32() 123 regs->regs[ 4] = ksig->sig; in setup_rt_frame_n32() 128 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame_n32()
|
H A D | signal-common.h | 25 extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
|
/linux/arch/arm64/include/asm/ |
H A D | signal32.h | 57 int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, 59 int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, 65 static inline int compat_setup_frame(int usid, struct ksignal *ksig, in compat_setup_frame() argument 71 static inline int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, in compat_setup_rt_frame() argument
|
/linux/arch/sparc/kernel/ |
H A D | signal_64.c | 337 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 369 get_sigframe(ksig, regs, sf_size); in setup_rt_frame() 376 force_sigsegv(ksig->sig); in setup_rt_frame() 419 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 422 err |= __put_user(ksig->sig, &sf->info.si_signo); in setup_rt_frame() 430 regs->u_regs[UREG_I0] = ksig->sig; in setup_rt_frame() 440 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 478 struct ksignal ksig; in do_signal() local 511 has_handler = get_signal(&ksig); in do_signal() 522 syscall_restart(orig_i0, regs, &ksig.ka.sa); in do_signal() [all …]
|
/linux/arch/m68k/kernel/ |
H A D | signal.c | 865 unsigned long usp = sigsp(rdusp(), ksig); in get_sigframe() 883 int err = 0, sig = ksig->sig; in setup_frame() 955 int err = 0, sig = ksig->sig; in setup_rt_frame() 1072 handle_restart(regs, &ksig->ka, 1); in handle_signal() 1075 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 1076 err = setup_rt_frame(ksig, oldset, regs); in handle_signal() 1078 err = setup_frame(ksig, oldset, regs); in handle_signal() 1080 signal_setup_done(err, ksig, 0); in handle_signal() 1095 struct ksignal ksig; in do_signal() local 1099 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux/arch/arm64/kernel/ |
H A D | signal.c | 1106 struct ksignal *ksig, struct pt_regs *regs) in get_sigframe() argument 1116 sp = sp_top = sigsp(regs->sp, ksig); in get_sigframe() 1198 if (get_sigframe(&user, ksig, regs)) in setup_rt_frame() 1209 setup_return(regs, &ksig->ka, &user, usig); in setup_rt_frame() 1210 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_rt_frame() 1234 int usig = ksig->sig; in handle_signal() 1237 rseq_signal_deliver(ksig, regs); in handle_signal() 1243 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 1273 struct ksignal ksig; in do_signal() local 1308 if (get_signal(&ksig)) { in do_signal() [all …]
|
H A D | signal32.c | 293 static void __user *compat_get_sigframe(struct ksignal *ksig, in compat_get_sigframe() argument 297 compat_ulong_t sp = sigsp(regs->compat_sp, ksig); in compat_get_sigframe() 403 int compat_setup_rt_frame(int usig, struct ksignal *ksig, in compat_setup_rt_frame() argument 409 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame() 414 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); in compat_setup_rt_frame() 424 compat_setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig); in compat_setup_rt_frame() 432 int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, in compat_setup_frame() argument 438 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_frame() 447 compat_setup_return(regs, &ksig->ka, frame->retcode, frame, usig); in compat_setup_frame()
|
/linux/arch/um/include/shared/ |
H A D | frame_kern.h | 9 extern int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig, 11 extern int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig,
|
/linux/arch/riscv/include/asm/ |
H A D | signal32.h | 7 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, 11 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, in compat_setup_rt_frame() argument
|
/linux/arch/mips/include/asm/ |
H A D | abi.h | 19 int (* const setup_frame)(void *sig_return, struct ksignal *ksig, 21 int (* const setup_rt_frame)(void *sig_return, struct ksignal *ksig,
|
/linux/arch/powerpc/kernel/ |
H A D | signal.h | 10 void __user *get_sigframe(struct ksignal *ksig, struct task_struct *tsk, 13 extern int handle_signal32(struct ksignal *ksig, sigset_t *oldset, 16 extern int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset, 191 extern int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, 196 static inline int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, in handle_rt_signal64() argument
|
H A D | signal_64.c | 857 int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, in handle_rt_signal64() argument 867 frame = get_sigframe(ksig, tsk, sizeof(*frame), 0); in handle_rt_signal64() 897 tsk, ksig->sig, NULL, in handle_rt_signal64() 898 (unsigned long)ksig->ka.sa.sa_handler, in handle_rt_signal64() 908 unsafe_setup_sigcontext(&frame->uc.uc_mcontext, tsk, ksig->sig, in handle_rt_signal64() 909 NULL, (unsigned long)ksig->ka.sa.sa_handler, in handle_rt_signal64() 917 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in handle_rt_signal64() 939 regs->ctr = (unsigned long) ksig->ka.sa.sa_handler; in handle_rt_signal64() 948 (struct func_desc __user *)ksig->ka.sa.sa_handler; in handle_rt_signal64() 957 regs->gpr[3] = ksig->sig; in handle_rt_signal64() [all …]
|
H A D | signal_32.c | 736 int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset, in handle_rt_signal32() argument 749 frame = get_sigframe(ksig, tsk, sizeof(*frame), 1); in handle_rt_signal32() 797 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in handle_rt_signal32() 813 regs->gpr[3] = ksig->sig; in handle_rt_signal32() 817 regs_set_return_ip(regs, (unsigned long) ksig->ka.sa.sa_handler); in handle_rt_signal32() 835 int handle_signal32(struct ksignal *ksig, sigset_t *oldset, in handle_signal32() argument 849 frame = get_sigframe(ksig, tsk, sizeof(*frame), 1); in handle_signal32() 866 unsafe_put_user(to_user_ptr(ksig->ka.sa.sa_handler), &sc->handler, failed); in handle_signal32() 874 unsafe_put_user(ksig->sig, &sc->signal, failed); in handle_signal32() 903 regs->gpr[3] = ksig->sig; in handle_signal32() [all …]
|
/linux/arch/x86/include/asm/ |
H A D | shstk.h | 22 int setup_signal_shadow_stack(struct ksignal *ksig); 34 static inline int setup_signal_shadow_stack(struct ksignal *ksig) { return 0; } in setup_signal_shadow_stack() argument
|
/linux/arch/loongarch/kernel/ |
H A D | signal.c | 912 sp = sigsp(sp, ksig); in get_sigframe() 967 frame = get_sigframe(ksig, regs, &extctx); in setup_rt_frame() 972 err |= copy_siginfo_to_user(&frame->rs_info, &ksig->info); in setup_rt_frame() 994 regs->regs[4] = ksig->sig; in setup_rt_frame() 999 regs->csr_era = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 1022 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 1035 rseq_signal_deliver(ksig, regs); in handle_signal() 1039 signal_setup_done(ret, ksig, 0); in handle_signal() 1044 struct ksignal ksig; in arch_do_signal_or_restart() local 1046 if (get_signal(&ksig)) { in arch_do_signal_or_restart() [all …]
|
/linux/fs/ |
H A D | aio.c | 2284 struct __aio_sigset ksig = { NULL, }; in SYSCALL_DEFINE6() local 2292 if (usig && copy_from_user(&ksig, usig, sizeof(ksig))) in SYSCALL_DEFINE6() 2295 ret = set_user_sigmask(ksig.sigmask, ksig.sigsetsize); in SYSCALL_DEFINE6() 2319 struct __aio_sigset ksig = { NULL, }; in SYSCALL_DEFINE6() local 2327 if (usig && copy_from_user(&ksig, usig, sizeof(ksig))) in SYSCALL_DEFINE6() 2331 ret = set_user_sigmask(ksig.sigmask, ksig.sigsetsize); in SYSCALL_DEFINE6() 2386 struct __compat_aio_sigset ksig = { 0, }; in COMPAT_SYSCALL_DEFINE6() local 2394 if (usig && copy_from_user(&ksig, usig, sizeof(ksig))) in COMPAT_SYSCALL_DEFINE6() 2397 ret = set_compat_user_sigmask(compat_ptr(ksig.sigmask), ksig.sigsetsize); in COMPAT_SYSCALL_DEFINE6() 2429 if (usig && copy_from_user(&ksig, usig, sizeof(ksig))) in COMPAT_SYSCALL_DEFINE6() [all …]
|
/linux/kernel/ |
H A D | vhost_task.c | 35 struct ksignal ksig; in vhost_task_fn() local 37 if (get_signal(&ksig)) in vhost_task_fn()
|
H A D | rseq.c | 315 void __rseq_handle_notify_resume(struct ksignal *ksig, struct pt_regs *regs) in __rseq_handle_notify_resume() argument 338 sig = ksig ? ksig->sig : 0; in __rseq_handle_notify_resume()
|
H A D | signal.c | 2661 switch (siginfo_layout(ksig->sig, ksig->info.si_code)) { in hide_si_addr_tag_bits() 2669 ksig->info.si_addr, ksig->sig, ksig->info.si_code); in hide_si_addr_tag_bits() 2681 bool get_signal(struct ksignal *ksig) in get_signal() argument 2797 &ksig->info, &type); in get_signal() 2818 ksig->ka = *ka; in get_signal() 2902 do_coredump(&ksig->info); in get_signal() 2922 ksig->sig = signr; in get_signal() 2925 hide_si_addr_tag_bits(ksig); in get_signal() 2952 sigaddset(&blocked, ksig->sig); in signal_delivered() 2963 force_sigsegv(ksig->sig); in signal_setup_done() [all …]
|
/linux/arch/s390/kernel/ |
H A D | entry.h | 35 void handle_signal32(struct ksignal *ksig, sigset_t *oldset,
|
/linux/include/linux/ |
H A D | signal.h | 293 extern bool get_signal(struct ksignal *ksig); 294 extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping);
|
/linux/io_uring/ |
H A D | sqpoll.c | 213 struct ksignal ksig; in io_sqd_handle_event() local 219 did_sig = get_signal(&ksig); in io_sqd_handle_event()
|