From: Xing Li lixing@loongson.cn
If a CPU support more than 32bit vmbits (which is true for 64bit CPUs), VPN2_MASK set to fixed 0xffffe000 will lead to a wrong EntryHi in some functions such as _kvm_mips_host_tlb_inv().
The cpu_vmbits definition of 32bit CPU in cpu-features.h is 31, so we still use the old definition.
Cc: stable@vger.kernel.org Signed-off-by: Xing Li lixing@loongson.cn [Huacai: Improve commit messages] Signed-off-by: Huacai Chen chenhc@lemote.com --- arch/mips/include/asm/kvm_host.h | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/mips/include/asm/kvm_host.h b/arch/mips/include/asm/kvm_host.h index 5794584..7b47a32 100644 --- a/arch/mips/include/asm/kvm_host.h +++ b/arch/mips/include/asm/kvm_host.h @@ -274,7 +274,11 @@ enum emulation_result { #define MIPS3_PG_SHIFT 6 #define MIPS3_PG_FRAME 0x3fffffc0
+#if defined(CONFIG_64BIT) +#define VPN2_MASK GENMASK(cpu_vmbits - 1, 13) +#else #define VPN2_MASK 0xffffe000 +#endif #define KVM_ENTRYHI_ASID cpu_asid_mask(&boot_cpu_data) #define TLB_IS_GLOBAL(x) ((x).tlb_lo[0] & (x).tlb_lo[1] & ENTRYLO_G) #define TLB_VPN2(x) ((x).tlb_hi & VPN2_MASK)
Hi
[This is an automated email]
This commit has been processed because it contains a -stable tag. The stable tag indicates that it's relevant for the following trees: all
The bot has tested the following trees: v5.6.5, v5.5.18, v5.4.33, v4.19.116, v4.14.176, v4.9.219, v4.4.219.
v5.6.5: Build OK! v5.5.18: Build OK! v5.4.33: Build OK! v4.19.116: Build OK! v4.14.176: Build OK! v4.9.219: Build OK! v4.4.219: Failed to apply! Possible dependencies: 029499b47738 ("KVM: x86: MMU: Make mmu_set_spte() return emulate value") 19d194c62b25 ("MIPS: KVM: Simplify TLB_* macros") 403015b323a2 ("MIPS: KVM: Move non-TLB handling code out of tlb.c") 7ee0e5b29d27 ("KVM: x86: MMU: Remove unused parameter of __direct_map()") 9a99c4fd6586 ("KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)") 9fbfb06a4065 ("MIPS: KVM: Arrayify struct kvm_mips_tlb::tlb_lo*") ba049e93aef7 ("kvm: rename pfn_t to kvm_pfn_t") bdb7ed8608f8 ("MIPS: KVM: Convert headers to kernel sized types") ca64c2beecd4 ("MIPS: KVM: Abstract guest ASID mask") caa1faa7aba6 ("MIPS: KVM: Trivial whitespace and style fixes") e6207bbea16c ("MIPS: KVM: Use MIPS_ENTRYLO_* defs from mipsregs.h")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
Hi, Sasha,
On Wed, Apr 22, 2020 at 9:42 AM Sasha Levin sashal@kernel.org wrote:
Hi
[This is an automated email]
This commit has been processed because it contains a -stable tag. The stable tag indicates that it's relevant for the following trees: all
The bot has tested the following trees: v5.6.5, v5.5.18, v5.4.33, v4.19.116, v4.14.176, v4.9.219, v4.4.219.
v5.6.5: Build OK! v5.5.18: Build OK! v5.4.33: Build OK! v4.19.116: Build OK! v4.14.176: Build OK! v4.9.219: Build OK! v4.4.219: Failed to apply! Possible dependencies: 029499b47738 ("KVM: x86: MMU: Make mmu_set_spte() return emulate value") 19d194c62b25 ("MIPS: KVM: Simplify TLB_* macros") 403015b323a2 ("MIPS: KVM: Move non-TLB handling code out of tlb.c") 7ee0e5b29d27 ("KVM: x86: MMU: Remove unused parameter of __direct_map()") 9a99c4fd6586 ("KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)") 9fbfb06a4065 ("MIPS: KVM: Arrayify struct kvm_mips_tlb::tlb_lo*") ba049e93aef7 ("kvm: rename pfn_t to kvm_pfn_t") bdb7ed8608f8 ("MIPS: KVM: Convert headers to kernel sized types") ca64c2beecd4 ("MIPS: KVM: Abstract guest ASID mask") caa1faa7aba6 ("MIPS: KVM: Trivial whitespace and style fixes") e6207bbea16c ("MIPS: KVM: Use MIPS_ENTRYLO_* defs from mipsregs.h")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
Please ignore this patch in linux-4.4 branch and even below.
-- Thanks Sasha
linux-stable-mirror@lists.linaro.org