Re: [PATCH 6.18 000/552] 6.18.50-rc1 review

From: Dominique Martinet

Date: Sat Sep 05 2026 - 07:50:16 EST


Miguel Ojeda wrote on Sat, Sep 05, 2026 at 01:41:11PM +0200:
> I see the same arm32 build issue:
>
> mm/page_vma_mapped.c:110:11: error: call to undeclared function 'huge_ptep_get'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> 110 | ptent = huge_ptep_get(pvmw->vma->vm_mm, pvmw->address,
> | ^
>
> In addition, in UML (x86_64) there is also nearby:
>
> mm/page_vma_mapped.c:110:9: error: assigning to 'pte_t' from incompatible type 'int'
> 110 | ptent = huge_ptep_get(pvmw->vma->vm_mm, pvmw->address,
> | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 111 | pvmw->pte);
> | ~~~~~~~~~~

See this 6.12 thread[1] for this build failure (I didn't check but
assume it is the same, that missing commit only made it 7.3-rc1 but was
also backported to the 7.2 tree, which also explains 7.2 didn't build
fail)
---
This builds on master because this commit:
f5407e9b697c ("mm/rmap: use huge_ptep_get() in try_to_unmap_one()")
added a function declaration in linux/hugetlb.h !CONFIG_HUGETLB_PAGE
code:
```
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index 817b8b4223fa..95b1b6ee1f96 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -1270,6 +1270,8 @@ static inline void hugetlb_count_sub(long l, struct mm_struct *mm)
{
}

+pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
+
static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
unsigned long addr, pte_t *ptep)
{
```

The rest of that commit isn't applicable, so we either need to roll that
change in 'mm/migrate: use huge_ptep_get() in remove_migration_pte()' or
add it separately (or drop that commit)
---

[1] https://lore.kernel.org/r/apq_s8mFJJPzoIdo@xxxxxxxxxxxxx

--
Dominique