ARC: mm: PAE: use 40-bit physical page mask
authorVladimir Isaev <isaev@synopsys.com>
Tue, 27 Apr 2021 12:12:37 +0000 (15:12 +0300)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 10 May 2021 19:38:59 +0000 (12:38 -0700)
commitc5f756d8c6265ebb1736a7787231f010a3b782e5
treee913ee505fe803c6655759cb2d2cbe5d0b76ff5e
parent3433adc8bd09fc9f29b8baddf33b4ecd1ecd2cdc
ARC: mm: PAE: use 40-bit physical page mask

32-bit PAGE_MASK can not be used as a mask for physical addresses
when PAE is enabled. PAGE_MASK_PHYS must be used for physical
addresses instead of PAGE_MASK.

Without this, init gets SIGSEGV if pte_modify was called:

| potentially unexpected fatal signal 11.
| Path: /bin/busybox
| CPU: 0 PID: 1 Comm: init Not tainted 5.12.0-rc5-00003-g1e43c377a79f-dirty
| Insn could not be fetched
|     @No matching VMA found
|  ECR: 0x00040000 EFA: 0x00000000 ERET: 0x00000000
| STAT: 0x80080082 [IE U     ]   BTA: 0x00000000
|  SP: 0x5f9ffe44  FP: 0x00000000 BLK: 0xaf3d4
| LPS: 0x000d093e LPE: 0x000d0950 LPC: 0x00000000
| r00: 0x00000002 r01: 0x5f9fff14 r02: 0x5f9fff20
| ...
| Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Signed-off-by: Vladimir Isaev <isaev@synopsys.com>
Reported-by: kernel test robot <lkp@intel.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: stable@vger.kernel.org
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/page.h
arch/arc/include/asm/pgtable.h
arch/arc/include/uapi/asm/page.h
arch/arc/mm/ioremap.c
arch/arc/mm/tlb.c