| .. | .. |
|---|
| 43 | 43 | |
|---|
| 44 | 44 | #include <asm/setup.h> |
|---|
| 45 | 45 | #include <linux/uaccess.h> |
|---|
| 46 | | -#include <asm/pgtable.h> |
|---|
| 47 | 46 | #include <asm/traps.h> |
|---|
| 48 | 47 | #include <asm/ucontext.h> |
|---|
| 49 | 48 | |
|---|
| .. | .. |
|---|
| 110 | 109 | sigset_t set; |
|---|
| 111 | 110 | int er0; |
|---|
| 112 | 111 | |
|---|
| 113 | | - if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) |
|---|
| 112 | + if (!access_ok(frame, sizeof(*frame))) |
|---|
| 114 | 113 | goto badframe; |
|---|
| 115 | 114 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) |
|---|
| 116 | 115 | goto badframe; |
|---|
| .. | .. |
|---|
| 126 | 125 | return er0; |
|---|
| 127 | 126 | |
|---|
| 128 | 127 | badframe: |
|---|
| 129 | | - force_sig(SIGSEGV, current); |
|---|
| 128 | + force_sig(SIGSEGV); |
|---|
| 130 | 129 | return 0; |
|---|
| 131 | 130 | } |
|---|
| 132 | 131 | |
|---|
| .. | .. |
|---|
| 165 | 164 | |
|---|
| 166 | 165 | frame = get_sigframe(ksig, regs, sizeof(*frame)); |
|---|
| 167 | 166 | |
|---|
| 168 | | - if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) |
|---|
| 167 | + if (!access_ok(frame, sizeof(*frame))) |
|---|
| 169 | 168 | return -EFAULT; |
|---|
| 170 | 169 | |
|---|
| 171 | 170 | if (ksig->ka.sa.sa_flags & SA_SIGINFO) |
|---|
| .. | .. |
|---|
| 228 | 227 | regs->er0 = -EINTR; |
|---|
| 229 | 228 | break; |
|---|
| 230 | 229 | } |
|---|
| 231 | | - /* fallthrough */ |
|---|
| 230 | + fallthrough; |
|---|
| 232 | 231 | case -ERESTARTNOINTR: |
|---|
| 233 | 232 | do_restart: |
|---|
| 234 | 233 | regs->er0 = regs->orig_er0; |
|---|
| .. | .. |
|---|
| 280 | 279 | |
|---|
| 281 | 280 | asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags) |
|---|
| 282 | 281 | { |
|---|
| 283 | | - if (thread_info_flags & _TIF_SIGPENDING) |
|---|
| 282 | + if (thread_info_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL)) |
|---|
| 284 | 283 | do_signal(regs); |
|---|
| 285 | 284 | |
|---|
| 286 | | - if (thread_info_flags & _TIF_NOTIFY_RESUME) { |
|---|
| 287 | | - clear_thread_flag(TIF_NOTIFY_RESUME); |
|---|
| 285 | + if (thread_info_flags & _TIF_NOTIFY_RESUME) |
|---|
| 288 | 286 | tracehook_notify_resume(regs); |
|---|
| 289 | | - } |
|---|
| 290 | 287 | } |
|---|