linux_dsm_epyc7002/arch/arm64/mm
James Morse 7209c86860 arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call
Commit 338d4f49d6 ("arm64: kernel: Add support for Privileged Access
Never") enabled PAN by enabling the 'SPAN' feature-bit in SCTLR_EL1.
This means the PSTATE.PAN bit won't be set until the next return to the
kernel from userspace. On a preemptible kernel we may schedule work that
accesses userspace on a CPU before it has done this.

Now that cpufeature enable() calls are scheduled via stop_machine(), we
can set PSTATE.PAN from the cpu_enable_pan() call.

Add WARN_ON_ONCE(in_interrupt()) to check the PSTATE value we updated
is not immediately discarded.

Reported-by: Tony Thompson <anthony.thompson@arm.com>
Reported-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
[will: fixed typo in comment]
Signed-off-by: Will Deacon <will.deacon@arm.com>
2016-10-20 09:50:53 +01:00
..
cache.S arm64: mm: convert __dma_* routines to use start, size 2016-08-22 10:00:48 +01:00
context.c arm64: update ASID limit 2016-06-21 20:10:18 +01:00
copypage.c arm64: Defer dcache flush in __cpu_copy_user_page 2015-12-17 11:07:13 +00:00
dma-mapping.c IOMMU Updates for Linux v4.9 2016-10-11 12:52:41 -07:00
dump.c arm64: Fix shift warning in arch/arm64/mm/dump.c 2016-08-18 12:38:11 +01:00
extable.c arm64: migrate exception table users off module.h and onto extable.h 2016-09-20 09:36:21 +01:00
fault.c arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call 2016-10-20 09:50:53 +01:00
flush.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
hugetlbpage.c Revert "arm64: hugetlb: partial revert of 66b3923a1a0f" 2016-05-31 11:00:09 +01:00
init.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
ioremap.c arm64: add ioremap physical address information 2015-01-23 15:29:06 +00:00
kasan_init.c arm64: kasan: Fix zero shadow mapping overriding kernel image shadow 2016-03-11 11:03:35 +00:00
Makefile arm64, numa: Add NUMA support for arm64 platforms. 2016-04-15 18:06:09 +01:00
mmap.c arm64: mm: remove unnecessary EXPORT_SYMBOL_GPL 2016-05-05 09:49:38 +01:00
mmu.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
numa.c arm64/numa: remove the limitation that cpu0 must bind to node0 2016-09-09 14:59:09 +01:00
pageattr.c arm64: hibernate: Support DEBUG_PAGEALLOC 2016-08-25 18:00:30 +01:00
pgd.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
proc.S arm64 updates for 4.9: 2016-10-03 08:58:35 -07:00