lkml.org 
[lkml]   [2020]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 041/128] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
    Date
    From: Xing Li <lixing@loongson.cn>

    commit 5816c76dea116a458f1932eefe064e35403248eb upstream.

    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 <stable@vger.kernel.org>
    Reviewed-by: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>
    Signed-off-by: Xing Li <lixing@loongson.cn>
    [Huacai: Improve commit messages]
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Message-Id: <1590220602-3547-3-git-send-email-chenhc@lemote.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/mips/include/asm/kvm_host.h | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/arch/mips/include/asm/kvm_host.h
    +++ b/arch/mips/include/asm/kvm_host.h
    @@ -243,7 +243,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)

    \
     
     \ /
      Last update: 2020-06-19 18:49    [W:2.719 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site