+ if (!pvmw.pte && (flags & TTU_SPLIT_HUGE_PMD)) {
+ /*
+ * We temporarily have to drop the PTL and start once
+ * again from that now-PTE-mapped page table.
+ */
+ split_huge_pmd_locked(vma, range.start, pvmw.pmd, false,
+ folio);
+ pvmw.pmd = NULL;
+ spin_unlock(pvmw.ptl);
IMO, you should also make the 'pvmw.ptl = NULL;' after unlocking as
page_vma_mapped_walk() did, in case some corner case met.
Yep, I'll also set pvmw.ptl to NULL here if any corner cases arise.
This series already resides in mm-stable. I asked Andrew to remove it
for now. If that doesn't work, we'll need fixup patches to address any
review feedback.
--
Cheers,
David / dhildenb