Re: [PATCH] mm/pgtable: convert pgtable_t to ptdesc pointer
Alex Shi <[email protected]> Sun, 18 Jan 2026 16:13:47 +0800
| Newsgroups | org.kernel.vger.linux-hexagon,dev.linux.lists.loongarch,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-sh,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 2026/1/8 10:23, Alex Shi wrote:
>
>
> On 2026/1/7 22:48, Matthew Wilcox wrote:
>> On Wed, Jan 07, 2026 at 05:28:36PM +0800, Alex Shi wrote:
>>> Right, I will fix this. and sent the 2nd version.
>> No, the patch is stupid and wrong. Don't send a v2. You seem to have a
>> hairtrigger resend, so I'm trying to prevent a v2 being sent instead of
>> sending a patient reply.
>
> Hi Matthew,
>
> I hear you—no v2 will be sent.
> but sorry for a bit confusing, what's your expected fix? is the too
> quick resenting? or the direction to alignment pgtable_t with ptdesc is
> wrong?
Hi Willy, Do you mind to share the detailed concern for this patch?
Thanks
>
> If it's the first. the new change for review address Mike's concern.
> diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/
> pgalloc.h
> index a17f01235c29..a204c3ac800a 100644
> --- a/arch/arm/include/asm/pgalloc.h
> +++ b/arch/arm/include/asm/pgalloc.h
> @@ -94,13 +94,13 @@ pte_alloc_one_kernel(struct mm_struct *mm)
> static inline pgtable_t
> pte_alloc_one(struct mm_struct *mm)
> {
> - struct page *pte;
> + struct ptdesc *pte;
>
> pte = __pte_alloc_one(mm, GFP_PGTABLE_USER | PGTABLE_HIGHMEM);
> if (!pte)
> return NULL;
> - if (!PageHighMem(pte))
> - clean_pte_table(page_address(pte));
> + if (!PageHighMem(ptdesc_page(pte)))
> + clean_pte_table(ptdesc_address(pte));
> return pte;
> }
>
> @@ -141,7 +141,7 @@ pmd_populate(struct mm_struct *mm, pmd_t *pmdp,
> pgtable_t ptep)
> else
> prot = _PAGE_USER_TABLE;
>
> - __pmd_populate(pmdp, page_to_phys(ptep), prot);
> + __pmd_populate(pmdp, page_to_phys(ptdesc_page(ptep)), prot);
> }
>
> #endif /* CONFIG_MMU */