KVM: x86: propagate exception from permission checks on the nested page fault
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 2 Sep 2014 11:23:06 +0000 (13:23 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 5 Sep 2014 10:01:13 +0000 (12:01 +0200)
commit54987b7afa902e886b3a751c056c2a4d4701020e
tree1a7d4ca35f40849dcfee8a5e6b4bbe6a1785cfdb
parentef54bcfeea6c8b04e2a4f9396e16d88558aa2eee
KVM: x86: propagate exception from permission checks on the nested page fault

Currently, if a permission error happens during the translation of
the final GPA to HPA, walk_addr_generic returns 0 but does not fill
in walker->fault.  To avoid this, add an x86_exception* argument
to the translate_gpa function, and let it fill in walker->fault.
The nested_page_fault field will be true, since the walk_mmu is the
nested_mmu and translate_gpu instead operates on the "outer" (NPT)
instance.

Reported-by: Valentine Sinitsyn <valentine.sinitsyn@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/mmu.c
arch/x86/kvm/paging_tmpl.h
arch/x86/kvm/x86.c