summaryrefslogtreecommitdiff
path: root/arch/powerpc/mm/hash_native_64.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-04-11 09:42:47 +0300
committerIngo Molnar <mingo@kernel.org>2017-04-11 09:42:47 +0300
commit84b1e36a6aee080ea01256659e2957114a0a52b5 (patch)
treee105aceb0f5aac46dbed0cb86ec28656cce44f35 /arch/powerpc/mm/hash_native_64.c
parent11e445e9b499dfd96d7cbc55b2f22057fcf2804d (diff)
parent39da7c509acff13fc8cb12ec1bb20337c988ed36 (diff)
downloadlinux-84b1e36a6aee080ea01256659e2957114a0a52b5.tar.xz
Merge tag 'v4.11-rc6' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/powerpc/mm/hash_native_64.c')
-rw-r--r--arch/powerpc/mm/hash_native_64.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c
index cc332608e656..65bb8f33b399 100644
--- a/arch/powerpc/mm/hash_native_64.c
+++ b/arch/powerpc/mm/hash_native_64.c
@@ -638,6 +638,10 @@ static void native_flush_hash_range(unsigned long number, int local)
unsigned long psize = batch->psize;
int ssize = batch->ssize;
int i;
+ unsigned int use_local;
+
+ use_local = local && mmu_has_feature(MMU_FTR_TLBIEL) &&
+ mmu_psize_defs[psize].tlbiel && !cxl_ctx_in_use();
local_irq_save(flags);
@@ -667,8 +671,7 @@ static void native_flush_hash_range(unsigned long number, int local)
} pte_iterate_hashed_end();
}
- if (mmu_has_feature(MMU_FTR_TLBIEL) &&
- mmu_psize_defs[psize].tlbiel && local) {
+ if (use_local) {
asm volatile("ptesync":::"memory");
for (i = 0; i < number; i++) {
vpn = batch->vpn[i];