diff options
Diffstat (limited to 'arch/powerpc/mm/hash_native_64.c')
-rw-r--r-- | arch/powerpc/mm/hash_native_64.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c index afc0a8295f84..ae4962a06476 100644 --- a/arch/powerpc/mm/hash_native_64.c +++ b/arch/powerpc/mm/hash_native_64.c | |||
@@ -29,6 +29,8 @@ | |||
29 | #include <asm/kexec.h> | 29 | #include <asm/kexec.h> |
30 | #include <asm/ppc-opcode.h> | 30 | #include <asm/ppc-opcode.h> |
31 | 31 | ||
32 | #include <misc/cxl.h> | ||
33 | |||
32 | #ifdef DEBUG_LOW | 34 | #ifdef DEBUG_LOW |
33 | #define DBG_LOW(fmt...) udbg_printf(fmt) | 35 | #define DBG_LOW(fmt...) udbg_printf(fmt) |
34 | #else | 36 | #else |
@@ -149,9 +151,11 @@ static inline void __tlbiel(unsigned long vpn, int psize, int apsize, int ssize) | |||
149 | static inline void tlbie(unsigned long vpn, int psize, int apsize, | 151 | static inline void tlbie(unsigned long vpn, int psize, int apsize, |
150 | int ssize, int local) | 152 | int ssize, int local) |
151 | { | 153 | { |
152 | unsigned int use_local = local && mmu_has_feature(MMU_FTR_TLBIEL); | 154 | unsigned int use_local; |
153 | int lock_tlbie = !mmu_has_feature(MMU_FTR_LOCKLESS_TLBIE); | 155 | int lock_tlbie = !mmu_has_feature(MMU_FTR_LOCKLESS_TLBIE); |
154 | 156 | ||
157 | use_local = local && mmu_has_feature(MMU_FTR_TLBIEL) && !cxl_ctx_in_use(); | ||
158 | |||
155 | if (use_local) | 159 | if (use_local) |
156 | use_local = mmu_psize_defs[psize].tlbiel; | 160 | use_local = mmu_psize_defs[psize].tlbiel; |
157 | if (lock_tlbie && !use_local) | 161 | if (lock_tlbie && !use_local) |