linux_dsm_epyc7002/arch/arm64
Mark Rutland 91d57155dc arm64: head.S: ensure visibility of page tables
After writing the page tables, we use __inval_cache_range to invalidate
any stale cache entries. Strongly Ordered memory accesses are not
ordered w.r.t. cache maintenance instructions, and hence explicit memory
barriers are required to provide this ordering. However,
__inval_cache_range was written to be used on Normal Cacheable memory
once the MMU and caches are on, and does not have any barriers prior to
the DC instructions.

This patch adds a DMB between the page tables being written and the
corresponding cachelines being invalidated, ensuring that the
invalidation makes the new data visible to subsequent cacheable
accesses. A barrier is not required before the prior invalidate as we do
not access the page table memory area prior to this, and earlier
barriers in preserve_boot_args and set_cpu_boot_mode_flag ensures
ordering w.r.t. any stores performed prior to entering Linux.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Fixes: c218bca74e ("arm64: Relax the kernel cache requirements for boot")
Signed-off-by: Will Deacon <will.deacon@arm.com>
2015-03-24 14:36:35 +00:00
..
boot dtb: change binding name to match with newer firmware DT 2015-03-04 15:54:14 -05:00
configs ARM: SoC 64-bit changes and additions 2015-02-17 09:47:46 -08:00
crypto arm64/crypto: issue aese/aesmc instructions in pairs 2015-03-19 10:43:57 +00:00
include arm64: KVM: use ID map with increased VA range if required 2015-03-23 11:35:29 +00:00
kernel arm64: head.S: ensure visibility of page tables 2015-03-24 14:36:35 +00:00
kvm arm64: KVM: use ID map with increased VA range if required 2015-03-23 11:35:29 +00:00
lib arm64: __clear_user: handle exceptions on strb 2014-11-13 15:21:26 +00:00
mm arm64: mm: increase VA range of identity map 2015-03-23 11:35:29 +00:00
net arm64: bpf: lift restriction on last instruction 2014-12-03 18:04:09 +00:00
xen
Kconfig arm64: kconfig: increase NR_CPUS range to 2-4096. 2015-03-19 19:46:00 +00:00
Kconfig.debug arm64: add better page protections to arm64 2015-01-22 14:54:29 +00:00
Makefile arm64: Adjust EFI libstub object include logic 2015-03-17 16:59:47 +00:00