On Mon, 20 Oct 2025 10:41:28 +0200 David Hildenbrand <[email protected]> wrote:
> 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 I'm looking into that > gmap code (which is getting redesigned either way) to only take the page unfortunately the rework won't make it in 6.18, so I'll have to quickly cobble together a fix > lock. > > In the end, we'll want here later a single > > if (!pmd_present(pmdval)) > goto nomap; >
