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@xxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html