• James Hogan's avatar
    MIPS: KVM: remove shadow_tlb code · 08596b0a
    James Hogan authored
    The kvm_mips_init_shadow_tlb() function is called from
    kvm_arch_vcpu_init() and initialises entries 0 to
    current_cpu_data.tlbsize-1 of the virtual cpu's shadow_tlb[64] array.
    
    However newer cores with FTLBs can have a tlbsize > 64, for example the
    ProAptiv I'm testing on has a total tlbsize of 576. This causes
    kvm_mips_init_shadow_tlb() to overflow the shadow_tlb[64] array and
    overwrite the comparecount_timer among other things, causing a lock up
    when starting a KVM guest.
    
    Aside from kvm_mips_init_shadow_tlb() which only initialises it, the
    shadow_tlb[64] array is only actually used by the following functions:
     - kvm_shadow_tlb_put() & kvm_shadow_tlb_load()
         These are never called. The only call sites are #if 0'd out.
     - kvm_mips_dump_shadow_tlbs()
         This is never called.
    
    It was originally added for trap & emulate, but turned out to be
    unnecessary so it was disabled.
    
    So instead of fixing the shadow_tlb initialisation code, lets just
    remove the shadow_tlb[64] array and the above functions entirely. The
    only functional change here is the removal of broken shadow_tlb
    initialisation. The rest just deletes dead code.
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Gleb Natapov <gleb@redhat.com>
    Cc: kvm@vger.kernel.org
    Cc: Sanjay Lal <sanjayl@kymasys.com>
    Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarJohn Crispin <blogic@openwrt.org>
    Patchwork: http://patchwork.linux-mips.org/patch/6384/
    08596b0a
kvm_host.h 22.6 KB