| .. | .. |
|---|
| 132 | 132 | */ |
|---|
| 133 | 133 | retval = (long) &ia64_strace_leave_kernel; |
|---|
| 134 | 134 | |
|---|
| 135 | | - if (!access_ok(VERIFY_READ, sc, sizeof(*sc))) |
|---|
| 135 | + if (!access_ok(sc, sizeof(*sc))) |
|---|
| 136 | 136 | goto give_sigsegv; |
|---|
| 137 | 137 | |
|---|
| 138 | 138 | if (GET_SIGSET(&set, &sc->sc_mask)) |
|---|
| .. | .. |
|---|
| 152 | 152 | return retval; |
|---|
| 153 | 153 | |
|---|
| 154 | 154 | give_sigsegv: |
|---|
| 155 | | - force_sig(SIGSEGV, current); |
|---|
| 155 | + force_sig(SIGSEGV); |
|---|
| 156 | 156 | return retval; |
|---|
| 157 | 157 | } |
|---|
| 158 | 158 | |
|---|
| .. | .. |
|---|
| 257 | 257 | */ |
|---|
| 258 | 258 | check_sp = (new_sp - sizeof(*frame)) & -STACK_ALIGN; |
|---|
| 259 | 259 | if (!likely(on_sig_stack(check_sp))) { |
|---|
| 260 | | - force_sigsegv(ksig->sig, current); |
|---|
| 260 | + force_sigsegv(ksig->sig); |
|---|
| 261 | 261 | return 1; |
|---|
| 262 | 262 | } |
|---|
| 263 | 263 | } |
|---|
| 264 | 264 | } |
|---|
| 265 | 265 | frame = (void __user *) ((new_sp - sizeof(*frame)) & -STACK_ALIGN); |
|---|
| 266 | 266 | |
|---|
| 267 | | - if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) { |
|---|
| 268 | | - force_sigsegv(ksig->sig, current); |
|---|
| 267 | + if (!access_ok(frame, sizeof(*frame))) { |
|---|
| 268 | + force_sigsegv(ksig->sig); |
|---|
| 269 | 269 | return 1; |
|---|
| 270 | 270 | } |
|---|
| 271 | 271 | |
|---|
| .. | .. |
|---|
| 282 | 282 | err |= setup_sigcontext(&frame->sc, set, scr); |
|---|
| 283 | 283 | |
|---|
| 284 | 284 | if (unlikely(err)) { |
|---|
| 285 | | - force_sigsegv(ksig->sig, current); |
|---|
| 285 | + force_sigsegv(ksig->sig); |
|---|
| 286 | 286 | return 1; |
|---|
| 287 | 287 | } |
|---|
| 288 | 288 | |
|---|
| .. | .. |
|---|
| 341 | 341 | * need to push through a forced SIGSEGV. |
|---|
| 342 | 342 | */ |
|---|
| 343 | 343 | while (1) { |
|---|
| 344 | | - get_signal(&ksig); |
|---|
| 344 | + if (!get_signal(&ksig)) |
|---|
| 345 | + break; |
|---|
| 345 | 346 | |
|---|
| 346 | 347 | /* |
|---|
| 347 | | - * get_signal_to_deliver() may have run a debugger (via notify_parent()) |
|---|
| 348 | + * get_signal() may have run a debugger (via notify_parent()) |
|---|
| 348 | 349 | * and the debugger may have modified the state (e.g., to arrange for an |
|---|
| 349 | 350 | * inferior call), thus it's important to check for restarting _after_ |
|---|
| 350 | | - * get_signal_to_deliver(). |
|---|
| 351 | + * get_signal(). |
|---|
| 351 | 352 | */ |
|---|
| 352 | 353 | if ((long) scr->pt.r10 != -1) |
|---|
| 353 | 354 | /* |
|---|
| .. | .. |
|---|
| 363 | 364 | |
|---|
| 364 | 365 | if (unlikely(restart)) { |
|---|
| 365 | 366 | switch (errno) { |
|---|
| 366 | | - case ERESTART_RESTARTBLOCK: |
|---|
| 367 | | - case ERESTARTNOHAND: |
|---|
| 367 | + case ERESTART_RESTARTBLOCK: |
|---|
| 368 | + case ERESTARTNOHAND: |
|---|
| 368 | 369 | scr->pt.r8 = EINTR; |
|---|
| 369 | 370 | /* note: scr->pt.r10 is already -1 */ |
|---|
| 370 | 371 | break; |
|---|
| 371 | | - |
|---|
| 372 | | - case ERESTARTSYS: |
|---|
| 372 | + case ERESTARTSYS: |
|---|
| 373 | 373 | if ((ksig.ka.sa.sa_flags & SA_RESTART) == 0) { |
|---|
| 374 | 374 | scr->pt.r8 = EINTR; |
|---|
| 375 | 375 | /* note: scr->pt.r10 is already -1 */ |
|---|
| 376 | 376 | break; |
|---|
| 377 | 377 | } |
|---|
| 378 | | - case ERESTARTNOINTR: |
|---|
| 378 | + fallthrough; |
|---|
| 379 | + case ERESTARTNOINTR: |
|---|
| 379 | 380 | ia64_decrement_ip(&scr->pt); |
|---|
| 380 | 381 | restart = 0; /* don't restart twice if handle_signal() fails... */ |
|---|
| 381 | 382 | } |
|---|