On Wed, Nov 09, 2022 at 02:26:26PM -0800, Ben Gardon wrote: > On Mon, Nov 7, 2022 at 1:58 PM Oliver Upton <oliver.upton@xxxxxxxxx> wrote: > > > > Create a helper to initialize a table and directly call > > smp_store_release() to install it (for now). Prepare for a subsequent > > change that generalizes PTE writes with a helper. > > > > Signed-off-by: Oliver Upton <oliver.upton@xxxxxxxxx> > > --- > > arch/arm64/kvm/hyp/pgtable.c | 20 ++++++++++---------- > > 1 file changed, 10 insertions(+), 10 deletions(-) > > > > diff --git a/arch/arm64/kvm/hyp/pgtable.c b/arch/arm64/kvm/hyp/pgtable.c > > index a34e2050f931..f4dd77c6c97d 100644 > > --- a/arch/arm64/kvm/hyp/pgtable.c > > +++ b/arch/arm64/kvm/hyp/pgtable.c > > @@ -136,16 +136,13 @@ static void kvm_clear_pte(kvm_pte_t *ptep) > > WRITE_ONCE(*ptep, 0); > > } > > > > -static void kvm_set_table_pte(kvm_pte_t *ptep, kvm_pte_t *childp, > > - struct kvm_pgtable_mm_ops *mm_ops) > > +static kvm_pte_t kvm_init_table_pte(kvm_pte_t *childp, struct kvm_pgtable_mm_ops *mm_ops) > > { > > - kvm_pte_t old = *ptep, pte = kvm_phys_to_pte(mm_ops->virt_to_phys(childp)); > > + kvm_pte_t pte = kvm_phys_to_pte(mm_ops->virt_to_phys(childp)); > > > > pte |= FIELD_PREP(KVM_PTE_TYPE, KVM_PTE_TYPE_TABLE); > > pte |= KVM_PTE_VALID; > > - > > - WARN_ON(kvm_pte_valid(old)); > > Is there any reason to drop this warning? It is (eventually) superseded by a WARN() when a PTE isn't locked in stage2_make_pte(), but that isn't obvious in this patch alone. -- Thanks, Oliver