.. | .. |
---|
25 | 25 | |
---|
26 | 26 | #include <linux/uaccess.h> |
---|
27 | 27 | #include <asm/ptrace.h> |
---|
28 | | -#include <asm/pgtable.h> |
---|
29 | 28 | #include <asm/fpumacro.h> |
---|
30 | 29 | #include <asm/uctx.h> |
---|
31 | 30 | #include <asm/siginfo.h> |
---|
.. | .. |
---|
134 | 133 | exception_exit(prev_state); |
---|
135 | 134 | return; |
---|
136 | 135 | do_sigsegv: |
---|
137 | | - force_sig(SIGSEGV, current); |
---|
| 136 | + force_sig(SIGSEGV); |
---|
138 | 137 | goto out; |
---|
139 | 138 | } |
---|
140 | 139 | |
---|
.. | .. |
---|
228 | 227 | exception_exit(prev_state); |
---|
229 | 228 | return; |
---|
230 | 229 | do_sigsegv: |
---|
231 | | - force_sig(SIGSEGV, current); |
---|
| 230 | + force_sig(SIGSEGV); |
---|
232 | 231 | goto out; |
---|
233 | 232 | } |
---|
234 | 233 | |
---|
.. | .. |
---|
320 | 319 | set_current_blocked(&set); |
---|
321 | 320 | return; |
---|
322 | 321 | segv: |
---|
323 | | - force_sig(SIGSEGV, current); |
---|
| 322 | + force_sig(SIGSEGV); |
---|
324 | 323 | } |
---|
325 | 324 | |
---|
326 | 325 | static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) |
---|
.. | .. |
---|
374 | 373 | pr_info("%s[%d] bad frame in setup_rt_frame: %016lx TPC %016lx O7 %016lx\n", |
---|
375 | 374 | current->comm, current->pid, (unsigned long)sf, |
---|
376 | 375 | regs->tpc, regs->u_regs[UREG_I7]); |
---|
377 | | - force_sigsegv(ksig->sig, current); |
---|
| 376 | + force_sigsegv(ksig->sig); |
---|
378 | 377 | return -EINVAL; |
---|
379 | 378 | } |
---|
380 | 379 | |
---|
.. | .. |
---|
462 | 461 | case ERESTARTSYS: |
---|
463 | 462 | if (!(sa->sa_flags & SA_RESTART)) |
---|
464 | 463 | goto no_system_call_restart; |
---|
465 | | - /* fallthrough */ |
---|
| 464 | + fallthrough; |
---|
466 | 465 | case ERESTARTNOINTR: |
---|
467 | 466 | regs->u_regs[UREG_I0] = orig_i0; |
---|
468 | 467 | regs->tpc -= 4; |
---|
.. | .. |
---|
533 | 532 | regs->tpc -= 4; |
---|
534 | 533 | regs->tnpc -= 4; |
---|
535 | 534 | pt_regs_clear_syscall(regs); |
---|
| 535 | + fallthrough; |
---|
536 | 536 | case ERESTART_RESTARTBLOCK: |
---|
537 | 537 | regs->u_regs[UREG_G1] = __NR_restart_syscall; |
---|
538 | 538 | regs->tpc -= 4; |
---|
.. | .. |
---|
549 | 549 | user_exit(); |
---|
550 | 550 | if (thread_info_flags & _TIF_UPROBE) |
---|
551 | 551 | uprobe_notify_resume(regs); |
---|
552 | | - if (thread_info_flags & _TIF_SIGPENDING) |
---|
| 552 | + if (thread_info_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL)) |
---|
553 | 553 | do_signal(regs, orig_i0); |
---|
554 | | - if (thread_info_flags & _TIF_NOTIFY_RESUME) { |
---|
555 | | - clear_thread_flag(TIF_NOTIFY_RESUME); |
---|
| 554 | + if (thread_info_flags & _TIF_NOTIFY_RESUME) |
---|
556 | 555 | tracehook_notify_resume(regs); |
---|
557 | | - } |
---|
558 | 556 | user_enter(); |
---|
559 | 557 | } |
---|
560 | 558 | |
---|