3/4
mm/huge_memory: read a special PMD under the lock in copy_huge_pmd()
copy_huge_pmd() 未持 PMD 锁就读取并复制 special PMD,unmap_mapping_range() 可并发清除父项,导致子进程保留驱动已撤销映射或 ppc64 hash 模式空 page table;改为先加锁,再用 vm_normal_page_pmd() 在锁下区分 PFN/folio 并复制。
copy_huge_pmd() 未持 PMD 锁就读取并复制 special PMD,unmap_mapping_range() 可并发清除父项,导致子进程保留驱动已撤销映射或 ppc64 hash 模式空 page table;改为先加锁,再用 vm_normal_page_pmd() 在锁下区分 PFN/folio 并复制。