Re: [PATCH v2 6/6] mm: Introduce ctor/dtor at PGD level

Alexander Gordeev <[email protected]>
Newsgroups org.kernel.vger.linux-hexagon,dev.linux.lists.loongarch,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-riscv,org.infradead.lists.linux-snps-arc,org.infradead.lists.linux-um,org.kernel.vger.linux-alpha,org.kernel.vger.linux-arch,org.kernel.vger.linux-csky,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-mips,org.kernel.vger.linux-openrisc,org.kernel.vger.linux-parisc,org.kernel.vger.linux-s390,org.kvack.linux-mm
Message-ID <Z4/[email protected]>
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!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.