On Fri, Jan 03, 2025 at 06:44:15PM +0000, Kevin Brodsky wrote: Hi Kevin, ... > diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h > index 5fced6d3c36b..b19b6ed2ab53 100644 > --- a/arch/s390/include/asm/pgalloc.h > +++ b/arch/s390/include/asm/pgalloc.h > @@ -130,11 +130,18 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) > > static inline pgd_t *pgd_alloc(struct mm_struct *mm) > { > - return (pgd_t *) crst_table_alloc(mm); > + unsigned long *table = crst_table_alloc(mm); > + > + if (!table) > + return NULL; I do not know status of this series, but FWIW, this call is missed: crst_table_init(table, _REGION1_ENTRY_EMPTY); > + pagetable_pgd_ctor(virt_to_ptdesc(table)); > + > + return (pgd_t *) table; > } > > static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) > { > + pagetable_dtor(virt_to_ptdesc(pgd)); > crst_table_free(mm, (unsigned long *) pgd); > } ... Thanks!