Home
last modified time | relevance | path

Searched refs:ksig (Results 1 – 25 of 52) sorted by relevance

123

/linux/arch/x86/kernel/
H A Dsignal.c49 ksig->ka.sa.sa_flags & SA_IA32_ABI; in is_ia32_compat_frame()
60 ksig->ka.sa.sa_flags & SA_X32_ABI; in is_x32_frame()
79 struct k_sigaction *ka = &ksig->ka; in get_sigframe()
80 int ia32_frame = is_ia32_frame(ksig); in get_sigframe()
212 rseq_signal_deliver(ksig, regs); in setup_rt_frame()
215 if (is_ia32_frame(ksig)) { in setup_rt_frame()
219 return ia32_setup_frame(ksig, regs); in setup_rt_frame()
220 } else if (is_x32_frame(ksig)) { in setup_rt_frame()
308 struct ksignal ksig; in arch_do_signal_or_restart() local
310 if (get_signal(&ksig)) { in arch_do_signal_or_restart()
[all …]
H A Dsignal_64.c172 if (!(ksig->ka.sa.sa_flags & SA_RESTORER)) in x64_setup_rt_frame()
193 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in x64_setup_rt_frame()
198 if (setup_signal_shadow_stack(ksig)) in x64_setup_rt_frame()
202 regs->di = ksig->sig; in x64_setup_rt_frame()
210 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in x64_setup_rt_frame()
311 if (!(ksig->ka.sa.sa_flags & SA_RESTORER)) in x32_setup_rt_frame()
318 if (setup_signal_shadow_stack(ksig)) in x32_setup_rt_frame()
329 restorer = ksig->ka.sa.sa_restorer; in x32_setup_rt_frame()
335 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in x32_setup_rt_frame()
342 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in x32_setup_rt_frame()
[all …]
/linux/arch/um/kernel/
H A Dsignal.c49 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/csky/kernel/
H A Dsignal.c128 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
142 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
146 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 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()
195 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
208 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
210 signal_setup_done(ret, ksig, 0); in handle_signal()
215 struct ksignal ksig; in do_signal() local
217 if (get_signal(&ksig)) { in do_signal()
[all …]
/linux/arch/openrisc/kernel/
H A Dsignal.c168 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument
175 sp = sigsp(sp, ksig); in get_sigframe()
195 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
201 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame()
202 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
243 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
247 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal()
266 struct ksignal ksig; in do_signal() local
301 if (get_signal(&ksig)) { in do_signal()
306 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { in do_signal()
[all …]
/linux/arch/arm/kernel/
H A Dsignal.c345 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) in setup_return()
387 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return()
398 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return()
435 regs->ARM_r0 = ksig->sig; in setup_return()
510 rseq_signal_deliver(ksig, regs); in handle_signal()
515 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal()
518 ret = setup_frame(ksig, oldset, regs); in handle_signal()
525 signal_setup_done(ret, ksig, 0); in handle_signal()
540 struct ksignal ksig; in do_signal() local
578 if (get_signal(&ksig)) { in do_signal()
[all …]
/linux/arch/sh/kernel/
H A Dsignal_32.c273 int err = 0, sig = ksig->sig; in setup_frame()
288 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame()
324 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame()
339 int err = 0, sig = ksig->sig; in setup_rt_frame()
358 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame()
442 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal()
443 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
445 ret = setup_frame(ksig, oldset, regs); in handle_signal()
461 struct ksignal ksig; in do_signal() local
472 if (get_signal(&ksig)) { in do_signal()
[all …]
/linux/arch/sparc/kernel/
H A Dsignal_32.c212 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 …]
H A Dsignal32.c275 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
382 force_sigsegv(ksig->sig); in setup_frame32()
458 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame32()
471 if (ksig->ka.ka_restorer) { in setup_frame32()
516 force_sigsegv(ksig->sig); in setup_rt_frame32()
590 regs->u_regs[UREG_I0] = ksig->sig; in setup_rt_frame32()
603 if (ksig->ka.ka_restorer) in setup_rt_frame32()
634 signal_setup_done(err, ksig, 0); in handle_signal32()
664 struct ksignal ksig; in do_signal32() local
667 bool has_handler = get_signal(&ksig); in do_signal32()
[all …]
/linux/arch/microblaze/kernel/
H A Dsignal.c149 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()
220 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
266 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
282 struct ksignal ksig; in do_signal() local
290 if (get_signal(&ksig)) { in do_signal()
293 handle_restart(regs, &ksig.ka, 1); in do_signal()
[all …]
/linux/arch/hexagon/kernel/
H A Dsignal.c30 unsigned long sp = sigsp(regs->r29, ksig); in get_sigframe()
95 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
102 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame()
107 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame()
124 | (unsigned long long)ksig->sig; in setup_rt_frame()
128 pt_set_elr(regs, (unsigned long)ksig->ka.sa.sa_handler); in setup_rt_frame()
153 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
173 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal()
183 struct ksignal ksig; in do_signal() local
188 if (get_signal(&ksig)) { in do_signal()
[all …]
/linux/arch/nios2/kernel/
H A Dsignal.c176 usp = sigsp(usp, ksig); in get_sigframe()
188 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
190 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame()
209 regs->r4 = (unsigned long) ksig->sig; in setup_rt_frame()
216 force_sigsegv(ksig->sig); in setup_rt_frame()
229 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
231 signal_setup_done(ret, ksig, 0); in handle_signal()
238 struct ksignal ksig; in do_signal() local
270 if (get_signal(&ksig)) { in do_signal()
276 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { in do_signal()
[all …]
/linux/arch/riscv/kernel/
H A Dsignal.c313 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
329 frame = get_sigframe(ksig, regs, frame_size); in setup_rt_frame()
379 current->comm, task_pid_nr(current), ksig->sig, in setup_rt_frame()
391 rseq_signal_deliver(ksig, regs); in handle_signal()
395 ret = compat_setup_rt_frame(ksig, oldset, regs); in handle_signal()
397 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
399 signal_setup_done(ret, ksig, 0); in handle_signal()
406 struct ksignal ksig; in arch_do_signal_or_restart() local
437 if (get_signal(&ksig)) { in arch_do_signal_or_restart()
447 !(ksig.ka.sa.sa_flags & SA_RESTART)))) { in arch_do_signal_or_restart()
[all …]
H A Dcompat_signal.c176 static inline void __user *compat_get_sigframe(struct ksignal *ksig, in compat_get_sigframe() argument
191 sp = sigsp(sp, ksig) - framesize; in compat_get_sigframe()
199 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, in compat_setup_rt_frame() argument
205 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame()
209 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); in compat_setup_rt_frame()
230 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; in compat_setup_rt_frame()
232 regs->a0 = ksig->sig; /* a0: signal number */ in compat_setup_rt_frame()
238 current->comm, task_pid_nr(current), ksig->sig, in compat_setup_rt_frame()
/linux/arch/arc/kernel/
H A Dsignal.c253 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe()
296 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { in setup_rt_frame()
297 err |= copy_siginfo_to_user(&sf->info, &ksig->info); in setup_rt_frame()
318 regs->r0 = ksig->sig; in setup_rt_frame()
321 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
327 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) in setup_rt_frame()
398 failed = setup_rt_frame(ksig, oldset, regs); in handle_signal()
400 signal_setup_done(failed, ksig, 0); in handle_signal()
405 struct ksignal ksig; in do_signal() local
412 arc_restart_syscall(&ksig.ka, regs); in do_signal()
[all …]
/linux/arch/s390/kernel/
H A Dsignal.c391 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame()
421 regs->gprs[2] = ksig->sig; in setup_rt_frame()
434 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal()
435 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
437 ret = setup_frame(ksig->sig, &ksig->ka, oldset, regs); in handle_signal()
454 struct ksignal ksig; in arch_do_signal_or_restart() local
465 if (get_signal(&ksig)) { in arch_do_signal_or_restart()
476 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { in arch_do_signal_or_restart()
492 rseq_signal_deliver(&ksig, regs); in arch_do_signal_or_restart()
494 handle_signal32(&ksig, oldset, regs); in arch_do_signal_or_restart()
[all …]
H A Dcompat_signal.c254 int sig = ksig->sig; in setup_frame32()
268 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_frame32()
300 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame32()
302 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_frame32()
354 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame32()
364 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame32()
366 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_rt_frame32()
396 regs->gprs[2] = ksig->sig; in setup_rt_frame32()
413 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal32()
414 ret = setup_rt_frame32(ksig, oldset, regs); in handle_signal32()
[all …]
/linux/arch/x86/include/asm/
H A Dsighandling.h19 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size,
22 int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs);
23 int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
24 int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
25 int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
/linux/arch/powerpc/kernel/
H A Dsignal.c172 oldsp = sigsp(oldsp, ksig); in get_sigframe()
246 struct ksignal ksig = { .sig = 0 }; in do_signal() local
251 get_signal(&ksig); in do_signal()
254 check_syscall_restart(tsk->thread.regs, &ksig.ka, ksig.sig > 0); in do_signal()
256 if (ksig.sig <= 0) { in do_signal()
280 rseq_signal_deliver(&ksig, tsk->thread.regs); in do_signal()
283 if (ksig.ka.sa.sa_flags & SA_SIGINFO) in do_signal()
284 ret = handle_rt_signal32(&ksig, oldset, tsk); in do_signal()
286 ret = handle_signal32(&ksig, oldset, tsk); in do_signal()
288 ret = handle_rt_signal64(&ksig, oldset, tsk); in do_signal()
[all …]
/linux/arch/alpha/kernel/
H A Dsignal.c345 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_frame()
361 regs->r16 = ksig->sig; /* a0: signal number */ in setup_frame()
399 r26 = (unsigned long) ksig->ka.ka_restorer; 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, oldset, regs); in handle_signal()
443 signal_setup_done(ret, ksig, 0); in handle_signal()
487 struct ksignal ksig; in do_signal() local
490 if (get_signal(&ksig)) { in do_signal()
495 syscall_restart(r0, r19, regs, &ksig.ka); in do_signal()
[all …]
/linux/include/linux/
H A Drseq.h34 static inline void rseq_handle_notify_resume(struct ksignal *ksig, in rseq_handle_notify_resume() argument
38 __rseq_handle_notify_resume(ksig, regs); in rseq_handle_notify_resume()
41 static inline void rseq_signal_deliver(struct ksignal *ksig, in rseq_signal_deliver() argument
47 rseq_handle_notify_resume(ksig, regs); in rseq_signal_deliver()
96 static inline void rseq_handle_notify_resume(struct ksignal *ksig, in rseq_handle_notify_resume() argument
100 static inline void rseq_signal_deliver(struct ksignal *ksig, in rseq_signal_deliver() argument
/linux/arch/xtensa/kernel/
H A Dsignal.c346 int err = 0, sig = ksig->sig; in setup_frame()
377 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_frame()
378 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_frame()
389 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame()
392 (unsigned long __user *)ksig->ka.sa.sa_restorer; in setup_frame()
396 ra = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame()
455 struct ksignal ksig; in do_signal() local
459 if (get_signal(&ksig)) { in do_signal()
475 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { in do_signal()
494 ret = setup_frame(&ksig, sigmask_to_save(), regs); in do_signal()
[all …]
/linux/arch/parisc/kernel/
H A Dsignal.c234 frame = get_sigframe(&ksig->ka, usp, sigframe_size); in setup_rt_frame()
236 DBG(1, "%s: frame %p info %p\n", __func__, frame, &ksig->info); in setup_rt_frame()
261 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
284 haddr = A(ksig->ka.sa.sa_handler); in setup_rt_frame()
351 regs->gr[26] = ksig->sig; /* signal number */ in setup_rt_frame()
389 __func__, ksig->sig, &ksig->ka, &ksig->info, oldset, regs); in handle_signal()
392 ret = setup_rt_frame(ksig, oldset, regs, in_syscall); in handle_signal()
550 struct ksignal ksig; in do_signal() local
554 has_handler = get_signal(&ksig); in do_signal()
563 syscall_restart(regs, &ksig.ka); in do_signal()
[all …]
/linux/arch/x86/um/
H A Dsignal.c366 int err = 0, sig = ksig->sig; in setup_signal_stack_sc()
375 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_sc()
376 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_sc()
412 int err = 0, sig = ksig->sig; in setup_signal_stack_si()
420 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si()
421 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_si()
427 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_signal_stack_si()
493 int err = 0, sig = ksig->sig; in setup_signal_stack_si()
504 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_signal_stack_si()
533 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si()
[all …]
/linux/arch/mips/kernel/
H A Dsignal.c579 sp = sigsp(sp, ksig); in get_sigframe()
739 regs->regs[ 4] = ksig->sig; in setup_frame()
788 regs->regs[ 4] = ksig->sig; in setup_rt_frame()
852 rseq_signal_deliver(ksig, regs); in handle_signal()
854 if (sig_uses_siginfo(&ksig->ka, abi)) in handle_signal()
856 ksig, regs, oldset); in handle_signal()
859 ksig, regs, oldset); in handle_signal()
861 signal_setup_done(ret, ksig, 0); in handle_signal()
866 struct ksignal ksig; in do_signal() local
868 if (get_signal(&ksig)) { in do_signal()
[all …]

123