• Bharat Bhushan's avatar
    kvm: booke: clear host tlb reference flag on guest tlb invalidation · 30a91fe2
    Bharat Bhushan authored
    On booke, "struct tlbe_ref" contains host tlb mapping information
    (pfn: for guest-pfn to pfn, flags: attribute associated with this mapping)
    for a guest tlb entry. So when a guest creates a TLB entry then
    "struct tlbe_ref" is set to point to valid "pfn" and set attributes in
    "flags" field of the above said structure. When a guest TLB entry is
    invalidated then flags field of corresponding "struct tlbe_ref" is
    updated to point that this is no more valid, also we selectively clear
    some other attribute bits, example: if E500_TLB_BITMAP was set then we clear
    E500_TLB_BITMAP, if E500_TLB_TLB0 is set then we clear this.
    
    Ideally we should clear complete "flags" as this entry is invalid and does not
    have anything to re-used. The other part of the problem is that when we use
    the same entry again then also we do not clear (started doing or-ing etc).
    
    So far it was working because the selectively clearing mentioned above
    actually clears "flags" what was set during TLB mapping. But the problem
    starts coming when we add more attributes to this then we need to selectively
    clear them and which is not needed.
    Signed-off-by: default avatarBharat Bhushan <bharat.bhushan@freescale.com>
    Reviewed-by: default avatarScott Wood <scottwood@freescale.com>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    30a91fe2
e500_mmu_host.c 17.7 KB