.. | .. |
---|
24 | 24 | |
---|
25 | 25 | #include <linux/uaccess.h> |
---|
26 | 26 | #include <asm/ptrace.h> |
---|
27 | | -#include <asm/pgtable.h> |
---|
28 | 27 | #include <asm/psrcompat.h> |
---|
29 | 28 | #include <asm/fpumacro.h> |
---|
30 | 29 | #include <asm/visasm.h> |
---|
.. | .. |
---|
170 | 169 | return; |
---|
171 | 170 | |
---|
172 | 171 | segv: |
---|
173 | | - force_sig(SIGSEGV, current); |
---|
| 172 | + force_sig(SIGSEGV); |
---|
174 | 173 | } |
---|
175 | 174 | |
---|
176 | 175 | asmlinkage void do_rt_sigreturn32(struct pt_regs *regs) |
---|
.. | .. |
---|
256 | 255 | set_current_blocked(&set); |
---|
257 | 256 | return; |
---|
258 | 257 | segv: |
---|
259 | | - force_sig(SIGSEGV, current); |
---|
| 258 | + force_sig(SIGSEGV); |
---|
260 | 259 | } |
---|
261 | 260 | |
---|
262 | 261 | static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) |
---|
.. | .. |
---|
299 | 298 | unsigned long pstate, paddr; |
---|
300 | 299 | pte_t *ptep, pte; |
---|
301 | 300 | pgd_t *pgdp; |
---|
| 301 | + p4d_t *p4dp; |
---|
302 | 302 | pud_t *pudp; |
---|
303 | 303 | pmd_t *pmdp; |
---|
304 | 304 | |
---|
.. | .. |
---|
318 | 318 | pgdp = pgd_offset(current->mm, address); |
---|
319 | 319 | if (pgd_none(*pgdp)) |
---|
320 | 320 | goto out_irqs_on; |
---|
321 | | - pudp = pud_offset(pgdp, address); |
---|
| 321 | + p4dp = p4d_offset(pgdp, address); |
---|
| 322 | + if (p4d_none(*p4dp)) |
---|
| 323 | + goto out_irqs_on; |
---|
| 324 | + pudp = pud_offset(p4dp, address); |
---|
322 | 325 | if (pud_none(*pudp)) |
---|
323 | 326 | goto out_irqs_on; |
---|
324 | 327 | pmdp = pmd_offset(pudp, address); |
---|
.. | .. |
---|
375 | 378 | pr_info("%s[%d] bad frame in setup_frame32: %08lx TPC %08lx O7 %08lx\n", |
---|
376 | 379 | current->comm, current->pid, (unsigned long)sf, |
---|
377 | 380 | regs->tpc, regs->u_regs[UREG_I7]); |
---|
378 | | - force_sigsegv(ksig->sig, current); |
---|
| 381 | + force_sigsegv(ksig->sig); |
---|
379 | 382 | return -EINVAL; |
---|
380 | 383 | } |
---|
381 | 384 | |
---|
.. | .. |
---|
509 | 512 | pr_info("%s[%d] bad frame in setup_rt_frame32: %08lx TPC %08lx O7 %08lx\n", |
---|
510 | 513 | current->comm, current->pid, (unsigned long)sf, |
---|
511 | 514 | regs->tpc, regs->u_regs[UREG_I7]); |
---|
512 | | - force_sigsegv(ksig->sig, current); |
---|
| 515 | + force_sigsegv(ksig->sig); |
---|
513 | 516 | return -EINVAL; |
---|
514 | 517 | } |
---|
515 | 518 | |
---|
.. | .. |
---|
643 | 646 | case ERESTARTSYS: |
---|
644 | 647 | if (!(sa->sa_flags & SA_RESTART)) |
---|
645 | 648 | goto no_system_call_restart; |
---|
646 | | - /* fallthrough */ |
---|
| 649 | + fallthrough; |
---|
647 | 650 | case ERESTARTNOINTR: |
---|
648 | 651 | regs->u_regs[UREG_I0] = orig_i0; |
---|
649 | 652 | regs->tpc -= 4; |
---|
.. | .. |
---|
683 | 686 | regs->tpc -= 4; |
---|
684 | 687 | regs->tnpc -= 4; |
---|
685 | 688 | pt_regs_clear_syscall(regs); |
---|
| 689 | + fallthrough; |
---|
686 | 690 | case ERESTART_RESTARTBLOCK: |
---|
687 | 691 | regs->u_regs[UREG_G1] = __NR_restart_syscall; |
---|
688 | 692 | regs->tpc -= 4; |
---|