|
@@ -2206,7 +2206,8 @@ static int __collapse_huge_page_isolate(struct vm_area_struct *vma,
|
|
for (_pte = pte; _pte < pte+HPAGE_PMD_NR;
|
|
for (_pte = pte; _pte < pte+HPAGE_PMD_NR;
|
|
_pte++, address += PAGE_SIZE) {
|
|
_pte++, address += PAGE_SIZE) {
|
|
pte_t pteval = *_pte;
|
|
pte_t pteval = *_pte;
|
|
- if (pte_none(pteval) || is_zero_pfn(pte_pfn(pteval))) {
|
|
|
|
|
|
+ if (pte_none(pteval) || (pte_present(pteval) &&
|
|
|
|
+ is_zero_pfn(pte_pfn(pteval)))) {
|
|
if (!userfaultfd_armed(vma) &&
|
|
if (!userfaultfd_armed(vma) &&
|
|
++none_or_zero <= khugepaged_max_ptes_none)
|
|
++none_or_zero <= khugepaged_max_ptes_none)
|
|
continue;
|
|
continue;
|