hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/arch/ia64/kernel/signal.c
....@@ -132,7 +132,7 @@
132132 */
133133 retval = (long) &ia64_strace_leave_kernel;
134134
135
- if (!access_ok(VERIFY_READ, sc, sizeof(*sc)))
135
+ if (!access_ok(sc, sizeof(*sc)))
136136 goto give_sigsegv;
137137
138138 if (GET_SIGSET(&set, &sc->sc_mask))
....@@ -152,7 +152,7 @@
152152 return retval;
153153
154154 give_sigsegv:
155
- force_sig(SIGSEGV, current);
155
+ force_sig(SIGSEGV);
156156 return retval;
157157 }
158158
....@@ -257,15 +257,15 @@
257257 */
258258 check_sp = (new_sp - sizeof(*frame)) & -STACK_ALIGN;
259259 if (!likely(on_sig_stack(check_sp))) {
260
- force_sigsegv(ksig->sig, current);
260
+ force_sigsegv(ksig->sig);
261261 return 1;
262262 }
263263 }
264264 }
265265 frame = (void __user *) ((new_sp - sizeof(*frame)) & -STACK_ALIGN);
266266
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);
269269 return 1;
270270 }
271271
....@@ -282,7 +282,7 @@
282282 err |= setup_sigcontext(&frame->sc, set, scr);
283283
284284 if (unlikely(err)) {
285
- force_sigsegv(ksig->sig, current);
285
+ force_sigsegv(ksig->sig);
286286 return 1;
287287 }
288288
....@@ -341,13 +341,14 @@
341341 * need to push through a forced SIGSEGV.
342342 */
343343 while (1) {
344
- get_signal(&ksig);
344
+ if (!get_signal(&ksig))
345
+ break;
345346
346347 /*
347
- * get_signal_to_deliver() may have run a debugger (via notify_parent())
348
+ * get_signal() may have run a debugger (via notify_parent())
348349 * and the debugger may have modified the state (e.g., to arrange for an
349350 * inferior call), thus it's important to check for restarting _after_
350
- * get_signal_to_deliver().
351
+ * get_signal().
351352 */
352353 if ((long) scr->pt.r10 != -1)
353354 /*
....@@ -363,19 +364,19 @@
363364
364365 if (unlikely(restart)) {
365366 switch (errno) {
366
- case ERESTART_RESTARTBLOCK:
367
- case ERESTARTNOHAND:
367
+ case ERESTART_RESTARTBLOCK:
368
+ case ERESTARTNOHAND:
368369 scr->pt.r8 = EINTR;
369370 /* note: scr->pt.r10 is already -1 */
370371 break;
371
-
372
- case ERESTARTSYS:
372
+ case ERESTARTSYS:
373373 if ((ksig.ka.sa.sa_flags & SA_RESTART) == 0) {
374374 scr->pt.r8 = EINTR;
375375 /* note: scr->pt.r10 is already -1 */
376376 break;
377377 }
378
- case ERESTARTNOINTR:
378
+ fallthrough;
379
+ case ERESTARTNOINTR:
379380 ia64_decrement_ip(&scr->pt);
380381 restart = 0; /* don't restart twice if handle_signal() fails... */
381382 }