• Alexey Kardashevskiy's avatar
    KVM: PPC: Book3S: Fix incorrect guest-to-user-translation error handling · ddfd151f
    Alexey Kardashevskiy authored
    H_PUT_TCE_INDIRECT handlers receive a page with up to 512 TCEs from
    a guest. Although we verify correctness of TCEs before we do anything
    with the existing tables, there is a small window when a check in
    kvmppc_tce_validate might pass and right after that the guest alters
    the page of TCEs, causing an early exit from the handler and leaving
    srcu_read_lock(&vcpu->kvm->srcu) (virtual mode) or lock_rmap(rmap)
    (real mode) locked.
    
    This fixes the bug by jumping to the common exit code with an appropriate
    unlock.
    
    Cc: stable@vger.kernel.org # v4.11+
    Fixes: 121f80ba ("KVM: PPC: VFIO: Add in-kernel acceleration for VFIO")
    Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    ddfd151f
book3s_64_vio_hv.c 16.8 KB