Re: [PATCH V2 4/8] kvm: x86/mmu: Set mmu->sync_page as NULL for direct paging

From: Sean Christopherson
Date: Thu Feb 09 2023 - 19:59:06 EST


On Tue, Feb 07, 2023, Paolo Bonzini wrote:
> On 2/7/23 16:57, Lai Jiangshan wrote:
> > From: Lai Jiangshan<jiangshan.ljs@xxxxxxxxxxxx>
> >
> > mmu->sync_page for direct paging is never called.
> >
> > And both mmu->sync_page and mm->invlpg only make sense in shadowpaging.
> > Setting mmu->sync_page as NULL for direct paging makes it consistent
> > with mm->invlpg which is set NULL for the case.
> >
> > Signed-off-by: Lai Jiangshan<jiangshan.ljs@xxxxxxxxxxxx>
>
> I'd rather have a WARN_ON_ONCE in kvm_sync_page(), otherwise looks good.

Agreed, there's even a WARN_ON_ONCE() to piggyback:

if (WARN_ON_ONCE(sp->role.direct || !vcpu->arch.mmu->sync_spte ||
(sp->role.word ^ root_role.word) & ~sync_role_ign.word))
return -1;

Of course, the direct + match checks on the role effectively do the same, but I
would rather be explicit.