On 3/8/22 18:48, Sean Christopherson wrote:
On Mon, Feb 21, 2022, Paolo Bonzini wrote:
kvm_calc_shadow_root_page_role_common is the same as
kvm_calc_cpu_mode except for the level, which is overwritten
afterwards in kvm_calc_shadow_mmu_root_page_role
and kvm_calc_shadow_npt_root_page_role.
role.base.direct is already set correctly for the CPU mode,
and CR0.PG=1 is required for VMRUN so it will also be
correct for nested NPT.
Bzzzt, this is wrong, the nested NPT MMU is indirect but will be computed as direct.
CR0.PG=1 means it's *not* direct:
+ role.base.direct = !____is_cr0_pg(regs);
Paolo