forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/sh/kernel/signal_32.c
....@@ -28,7 +28,6 @@
2828 #include <linux/tracehook.h>
2929 #include <asm/ucontext.h>
3030 #include <linux/uaccess.h>
31
-#include <asm/pgtable.h>
3231 #include <asm/cacheflush.h>
3332 #include <asm/syscalls.h>
3433 #include <asm/fpu.h>
....@@ -160,7 +159,7 @@
160159 /* Always make any pending restarted system calls return -EINTR */
161160 current->restart_block.fn = do_no_restart_syscall;
162161
163
- if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
162
+ if (!access_ok(frame, sizeof(*frame)))
164163 goto badframe;
165164
166165 if (__get_user(set.sig[0], &frame->sc.oldmask)
....@@ -176,7 +175,7 @@
176175 return r0;
177176
178177 badframe:
179
- force_sig(SIGSEGV, current);
178
+ force_sig(SIGSEGV);
180179 return 0;
181180 }
182181
....@@ -190,7 +189,7 @@
190189 /* Always make any pending restarted system calls return -EINTR */
191190 current->restart_block.fn = do_no_restart_syscall;
192191
193
- if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
192
+ if (!access_ok(frame, sizeof(*frame)))
194193 goto badframe;
195194
196195 if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
....@@ -207,7 +206,7 @@
207206 return r0;
208207
209208 badframe:
210
- force_sig(SIGSEGV, current);
209
+ force_sig(SIGSEGV);
211210 return 0;
212211 }
213212
....@@ -272,7 +271,7 @@
272271
273272 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame));
274273
275
- if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
274
+ if (!access_ok(frame, sizeof(*frame)))
276275 return -EFAULT;
277276
278277 err |= setup_sigcontext(&frame->sc, regs, set->sig[0]);
....@@ -338,7 +337,7 @@
338337
339338 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame));
340339
341
- if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
340
+ if (!access_ok(frame, sizeof(*frame)))
342341 return -EFAULT;
343342
344343 err |= copy_siginfo_to_user(&frame->info, &ksig->info);
....@@ -419,7 +418,7 @@
419418 case -ERESTARTSYS:
420419 if (!(sa->sa_flags & SA_RESTART))
421420 goto no_system_call_restart;
422
- /* fallthrough */
421
+ fallthrough;
423422 case -ERESTARTNOINTR:
424423 regs->regs[0] = save_r0;
425424 regs->pc -= instruction_size(__raw_readw(regs->pc - 4));
....@@ -500,11 +499,9 @@
500499 unsigned long thread_info_flags)
501500 {
502501 /* deal with pending signal delivery */
503
- if (thread_info_flags & _TIF_SIGPENDING)
502
+ if (thread_info_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL))
504503 do_signal(regs, save_r0);
505504
506
- if (thread_info_flags & _TIF_NOTIFY_RESUME) {
507
- clear_thread_flag(TIF_NOTIFY_RESUME);
505
+ if (thread_info_flags & _TIF_NOTIFY_RESUME)
508506 tracehook_notify_resume(regs);
509
- }
510507 }