KVM: nVMX: fix EPT permissions as reported in exit qualification
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 11 May 2017 11:23:29 +0000 (13:23 +0200)
committerRadim Krčmář <rkrcmar@redhat.com>
Mon, 15 May 2017 16:22:40 +0000 (18:22 +0200)
commit0780516a18f87e881e42ed815f189279b0a1743c
tree229ce5f517835cdc192664ea8a14cb4b6a779336
parentfce6ac4c0508b985d497e3d9c8eff28ec8a43182
KVM: nVMX: fix EPT permissions as reported in exit qualification

This fixes the new ept_access_test_read_only and ept_access_test_read_write
testcases from vmx.flat.

The problem is that gpte_access moves bits around to switch from EPT
bit order (XWR) to ACC_*_MASK bit order (RWX).  This results in an
incorrect exit qualification.  To fix this, make pt_access and
pte_access operate on raw PTE values (only with NX flipped to mean
"can execute") and call gpte_access at the end of the walk.  This
lets us use pte_access to compute the exit qualification with XWR
bit order.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Xiao Guangrong <xiaoguangrong@tencent.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
arch/x86/kvm/paging_tmpl.h