• Paul Mackerras's avatar
    KVM: PPC: Book3S HV: Correct tlbie usage · 54480501
    Paul Mackerras authored
    This corrects the usage of the tlbie (TLB invalidate entry) instruction
    in HV KVM.  The tlbie instruction changed between PPC970 and POWER7.
    On the PPC970, the bit to select large vs. small page is in the instruction,
    not in the RB register value.  This changes the code to use the correct
    form on PPC970.
    
    On POWER7 we were calculating the AVAL (Abbreviated Virtual Address, Lower)
    field of the RB value incorrectly for 64k pages.  This fixes it.
    
    Since we now have several cases to handle for the tlbie instruction, this
    factors out the code to do a sequence of tlbies into a new function,
    do_tlbies(), and calls that from the various places where the code was
    doing tlbie instructions inline.  It also makes kvmppc_h_bulk_remove()
    use the same global_invalidates() function for determining whether to do
    local or global TLB invalidations as is used in other places, for
    consistency, and also to make sure that kvm->arch.need_tlb_flush gets
    updated properly.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    54480501
kvm_book3s_64.h 7.11 KB