/Linux-v5.15/arch/x86/kernel/ |
D | signal.c | 326 __setup_frame(int sig, struct ksignal *ksig, sigset_t *set, in __setup_frame() argument 333 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fp); in __setup_frame() 346 if (ksig->ka.sa.sa_flags & SA_RESTORER) in __setup_frame() 347 restorer = ksig->ka.sa.sa_restorer; in __setup_frame() 364 regs->ip = (unsigned long)ksig->ka.sa.sa_handler; in __setup_frame() 381 static int __setup_rt_frame(int sig, struct ksignal *ksig, in __setup_rt_frame() argument 388 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fp); in __setup_rt_frame() 408 if (ksig->ka.sa.sa_flags & SA_RESTORER) in __setup_rt_frame() 409 restorer = ksig->ka.sa.sa_restorer; in __setup_rt_frame() 424 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in __setup_rt_frame() [all …]
|
/Linux-v5.15/arch/um/kernel/ |
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-v5.15/arch/h8300/kernel/ |
D | signal.c | 153 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 155 return (void __user *)((sigsp(rdusp(), ksig) - frame_size) & -8UL); in get_sigframe() 158 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 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() 171 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 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() 200 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 201 regs->er0 = ksig->sig; in setup_rt_frame() [all …]
|
/Linux-v5.15/arch/csky/kernel/ |
D | signal.c | 113 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 128 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 137 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 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() 177 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 182 rseq_signal_deliver(ksig, regs); in handle_signal() 197 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() [all …]
|
/Linux-v5.15/arch/openrisc/kernel/ |
D | signal.c | 131 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 138 sp = sigsp(sp, ksig); in get_sigframe() 151 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 158 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 164 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 165 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 193 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; /* what we enter NOW */ in setup_rt_frame() 195 regs->gpr[3] = (unsigned long)ksig->sig; /* arg 1: signo */ in setup_rt_frame() 206 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 210 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal() [all …]
|
/Linux-v5.15/arch/riscv/kernel/ |
D | signal.c | 151 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 166 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 174 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 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() 219 regs->a0 = ksig->sig; /* a0: signal number */ in setup_rt_frame() 225 current->comm, task_pid_nr(current), ksig->sig, in setup_rt_frame() 232 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 249 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() [all …]
|
/Linux-v5.15/arch/arm/kernel/ |
D | signal.c | 300 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) in get_sigframe() argument 302 unsigned long sp = sigsp(regs->ARM_sp, ksig); in get_sigframe() 320 setup_return(struct pt_regs *regs, struct ksignal *ksig, in setup_return() argument 323 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; in setup_return() 344 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) in setup_return() 375 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_return() 376 retcode = (unsigned long)ksig->ka.sa.sa_restorer; 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() [all …]
|
/Linux-v5.15/arch/sh/kernel/ |
D | signal_32.c | 266 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 270 int err = 0, sig = ksig->sig; in setup_frame() 272 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame() 285 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 286 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; in setup_frame() 316 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; in setup_frame() 321 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame() 332 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 336 int err = 0, sig = ksig->sig; in setup_rt_frame() 338 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame() [all …]
|
/Linux-v5.15/arch/sparc/kernel/ |
D | signal_32.c | 200 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long f… in get_sigframe() argument 212 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 225 static int setup_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_frame() argument 244 get_sigframe(ksig, regs, sigframe_size); in setup_frame() 292 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame() 297 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 301 if (ksig->ka.ka_restorer) in setup_frame() 302 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame() 320 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame() argument 337 get_sigframe(ksig, regs, sigframe_size); in setup_rt_frame() [all …]
|
D | signal32.c | 261 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesiz… in get_sigframe() argument 276 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 351 static int setup_frame32(struct ksignal *ksig, struct pt_regs *regs, in setup_frame32() argument 374 get_sigframe(ksig, regs, sigframe_size); in setup_frame32() 381 force_sigsegv(ksig->sig); in setup_frame32() 457 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame32() 462 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame32() 470 if (ksig->ka.ka_restorer) { in setup_frame32() 471 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame32() 486 static int setup_rt_frame32(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame32() argument [all …]
|
/Linux-v5.15/arch/microblaze/kernel/ |
D | signal.c | 146 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 149 unsigned long sp = sigsp(regs->r1, ksig); in get_sigframe() 154 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 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() 259 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 265 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() [all …]
|
/Linux-v5.15/arch/hexagon/kernel/ |
D | signal.c | 28 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 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() 137 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 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() [all …]
|
/Linux-v5.15/arch/nios2/kernel/ |
D | signal.c | 165 static inline void *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 174 usp = sigsp(usp, ksig); in get_sigframe() 180 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 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() 189 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 207 regs->r4 = (unsigned long) ksig->sig; in setup_rt_frame() 210 regs->ea = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 214 force_sigsegv(ksig->sig); in setup_rt_frame() 221 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument [all …]
|
/Linux-v5.15/arch/arc/kernel/ |
D | signal.c | 247 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 251 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe() 269 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 275 sf = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame() 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() 328 regs->blink = (unsigned long)ksig->ka.sa.sa_restorer; in setup_rt_frame() [all …]
|
/Linux-v5.15/arch/powerpc/kernel/ |
D | signal.c | 149 void __user *get_sigframe(struct ksignal *ksig, struct task_struct *tsk, in get_sigframe() argument 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() [all …]
|
/Linux-v5.15/arch/s390/kernel/ |
D | signal.c | 366 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 385 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame() 395 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 396 restorer = (unsigned long) ksig->ka.sa.sa_restorer; in setup_rt_frame() 401 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame() 423 regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 425 regs->gprs[2] = ksig->sig; in setup_rt_frame() 432 static void handle_signal(struct ksignal *ksig, sigset_t *oldset, in handle_signal() argument 438 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 439 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() [all …]
|
D | compat_signal.c | 254 static int setup_frame32(struct ksignal *ksig, sigset_t *set, in setup_frame32() argument 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() 317 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler; in setup_frame32() 335 static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set, in setup_rt_frame32() argument 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() [all …]
|
/Linux-v5.15/arch/ia64/kernel/ |
D | signal.c | 227 setup_frame(struct ksignal *ksig, sigset_t *set, struct sigscratch *scr) in setup_frame() argument 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() 277 err |= __put_user(ksig->ka.sa.sa_handler, &frame->handler); in setup_frame() 279 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_frame() 285 force_sigsegv(ksig->sig); in setup_frame() 312 current->comm, current->pid, ksig->sig, scr->pt.r12, frame->sc.sc_ip, frame->handler); in setup_frame() 318 handle_signal (struct ksignal *ksig, struct sigscratch *scr) in handle_signal() argument [all …]
|
/Linux-v5.15/arch/x86/ia32/ |
D | ia32_signal.c | 203 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 213 if (ksig->ka.sa.sa_flags & SA_ONSTACK) in get_sigframe() 214 sp = sigsp(sp, ksig); in get_sigframe() 217 !(ksig->ka.sa.sa_flags & SA_RESTORER) && in get_sigframe() 218 ksig->ka.sa.sa_restorer) in get_sigframe() 219 sp = (unsigned long) ksig->ka.sa.sa_restorer; in get_sigframe() 234 int ia32_setup_frame(int sig, struct ksignal *ksig, in ia32_setup_frame() argument 252 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in ia32_setup_frame() 254 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in ia32_setup_frame() 255 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_frame() [all …]
|
/Linux-v5.15/arch/alpha/kernel/ |
D | signal.c | 265 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) in get_sigframe() argument 267 return (void __user *)((sigsp(sp, ksig) - frame_size) & -32ul); in get_sigframe() 328 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument 334 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); in setup_frame() 344 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_frame() 359 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 360 regs->r16 = ksig->sig; /* a0: signal number */ in setup_frame() 373 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 379 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); in setup_rt_frame() 383 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() [all …]
|
/Linux-v5.15/arch/parisc/kernel/ |
D | signal.c | 227 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs, in setup_rt_frame() argument 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() 263 err |= copy_siginfo_to_user32(&compat_frame->info, &ksig->info); in setup_rt_frame() 275 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 313 haddr = A(ksig->ka.sa.sa_handler); in setup_rt_frame() 380 regs->gr[26] = ksig->sig; /* signal number */ in setup_rt_frame() 412 handle_signal(struct ksignal *ksig, struct pt_regs *regs, int in_syscall) in handle_signal() argument 418 ksig->sig, ksig->ka, ksig->info, oldset, regs); in handle_signal() 421 ret = setup_rt_frame(ksig, oldset, regs, in_syscall); in handle_signal() [all …]
|
/Linux-v5.15/arch/nds32/kernel/ |
D | signal.c | 230 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 246 sp = (sigsp(sp, ksig) - framesize); in get_sigframe() 257 setup_return(struct pt_regs *regs, struct ksignal *ksig, void __user * frame) in setup_return() argument 259 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; in setup_return() 263 regs->uregs[0] = ksig->sig; in setup_return() 272 setup_rt_frame(struct ksignal *ksig, sigset_t * set, struct pt_regs *regs) in setup_rt_frame() argument 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() 289 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() [all …]
|
/Linux-v5.15/arch/xtensa/kernel/ |
D | signal.c | 333 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 337 int err = 0, sig = ksig->sig; in setup_frame() 343 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) != 0 && sas_ss_flags(sp) == 0) { in setup_frame() 356 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_frame() 357 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_frame() 368 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 369 ra = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame() 390 start_thread(regs, (unsigned long) ksig->ka.sa.sa_handler, in setup_frame() 427 struct ksignal ksig; in do_signal() local 431 if (get_signal(&ksig)) { in do_signal() [all …]
|
/Linux-v5.15/arch/x86/um/ |
D | signal.c | 360 int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig, in setup_signal_stack_sc() argument 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() 399 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; in setup_signal_stack_sc() 406 int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig, in setup_signal_stack_si() argument 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() [all …]
|
/Linux-v5.15/arch/mips/kernel/ |
D | signal.c | 554 void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 572 sp = sigsp(sp, ksig); in get_sigframe() 707 static int setup_frame(void *sig_return, struct ksignal *ksig, in setup_frame() argument 713 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame() 732 regs->regs[ 4] = ksig->sig; in setup_frame() 737 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 746 static int setup_rt_frame(void *sig_return, struct ksignal *ksig, in setup_rt_frame() argument 752 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 757 err |= copy_siginfo_to_user(&frame->rs_info, &ksig->info); in setup_rt_frame() 779 regs->regs[ 4] = ksig->sig; in setup_rt_frame() [all …]
|