On 20.10.25 09:00, Christian Borntraeger wrote:
Am 17.10.25 um 23:56 schrieb Balbir Singh:

In the meanwhile, does this fix/workaround work?

diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c
index 0c847cdf4fd3..31c1754d5bd4 100644
--- a/mm/pgtable-generic.c
+++ b/mm/pgtable-generic.c
@@ -290,7 +290,7 @@ pte_t *___pte_offset_map(pmd_t *pmd, unsigned long addr, 
pmd_t *pmdvalp)
if (pmdvalp)
                *pmdvalp = pmdval;
-       if (unlikely(pmd_none(pmdval) || !pmd_present(pmdval)))
+       if (unlikely(pmd_none(pmdval) || 
is_pmd_non_present_folio_entry(pmdval)))
                goto nomap;
        if (unlikely(pmd_trans_huge(pmdval)))
                goto nomap;


Yes, this seems to work.

Right, but that's not what we will want here. We'll have to adjust s390x gmap code (which is getting redesigned either way) to only take the page lock.

In the end, we'll want here later a single

if (!pmd_present(pmdval))
        goto nomap;

--
Cheers

David / dhildenb

Reply via email to