| .. | .. |
|---|
| 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; |
|---|