|
@@ -600,7 +600,11 @@ pte_t *__page_check_address(struct page *page, struct mm_struct *mm,
|
|
spinlock_t *ptl;
|
|
spinlock_t *ptl;
|
|
|
|
|
|
if (unlikely(PageHuge(page))) {
|
|
if (unlikely(PageHuge(page))) {
|
|
|
|
+ /* when pud is not present, pte will be NULL */
|
|
pte = huge_pte_offset(mm, address);
|
|
pte = huge_pte_offset(mm, address);
|
|
|
|
+ if (!pte)
|
|
|
|
+ return NULL;
|
|
|
|
+
|
|
ptl = huge_pte_lockptr(page_hstate(page), mm, pte);
|
|
ptl = huge_pte_lockptr(page_hstate(page), mm, pte);
|
|
goto check;
|
|
goto check;
|
|
}
|
|
}
|