Re: [PATCH v2 6/6] mm: Introduce ctor/dtor at PGD level
From: Alexander Gordeev
Date: Tue Jan 21 2025 - 11:37:53 EST
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!