Message ID | 1451492777-7454-1-git-send-email-dmatlack@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 30/12/2015 17:26, David Matlack wrote: > The comment had the meaning of mmu.gva_to_gpa and nested_mmu.gva_to_gpa > swapped. Fix that, and also add some details describing how each translation > works. > > Signed-off-by: David Matlack <dmatlack@google.com> > --- > arch/x86/kvm/mmu.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > index e7c2c14..098a9c2 100644 > --- a/arch/x86/kvm/mmu.c > +++ b/arch/x86/kvm/mmu.c > @@ -4058,10 +4058,12 @@ static void init_kvm_nested_mmu(struct kvm_vcpu *vcpu) > g_context->inject_page_fault = kvm_inject_page_fault; > > /* > - * Note that arch.mmu.gva_to_gpa translates l2_gva to l1_gpa. The > - * translation of l2_gpa to l1_gpa addresses is done using the > - * arch.nested_mmu.gva_to_gpa function. Basically the gva_to_gpa > - * functions between mmu and nested_mmu are swapped. > + * Note that arch.mmu.gva_to_gpa translates l2_gpa to l1_gpa using > + * L1's nested page tables (e.g. EPT12). The nested translation > + * of l2_gva to l1_gpa is done by arch.nested_mmu.gva_to_gpa using > + * L2's page tables as the first level of translation and L1's > + * nested page tables as the second level of translation. Basically > + * the gva_to_gpa functions between mmu and nested_mmu are swapped. > */ > if (!is_paging(vcpu)) { > g_context->nx = false; > Applied, thanks. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index e7c2c14..098a9c2 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -4058,10 +4058,12 @@ static void init_kvm_nested_mmu(struct kvm_vcpu *vcpu) g_context->inject_page_fault = kvm_inject_page_fault; /* - * Note that arch.mmu.gva_to_gpa translates l2_gva to l1_gpa. The - * translation of l2_gpa to l1_gpa addresses is done using the - * arch.nested_mmu.gva_to_gpa function. Basically the gva_to_gpa - * functions between mmu and nested_mmu are swapped. + * Note that arch.mmu.gva_to_gpa translates l2_gpa to l1_gpa using + * L1's nested page tables (e.g. EPT12). The nested translation + * of l2_gva to l1_gpa is done by arch.nested_mmu.gva_to_gpa using + * L2's page tables as the first level of translation and L1's + * nested page tables as the second level of translation. Basically + * the gva_to_gpa functions between mmu and nested_mmu are swapped. */ if (!is_paging(vcpu)) { g_context->nx = false;
The comment had the meaning of mmu.gva_to_gpa and nested_mmu.gva_to_gpa swapped. Fix that, and also add some details describing how each translation works. Signed-off-by: David Matlack <dmatlack@google.com> --- arch/x86/kvm/mmu.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)