diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index 57af2c841b4101133b59508d0fb022edf30d9884..40fd9f7b3ed3bcabb9a0e11ba47c4bad314de5c4 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -1399,6 +1399,9 @@ void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr)
 	if (!PageHead(hpage))
 		goto drop_hpage;
 
+	if (compound_order(hpage) != HPAGE_PMD_ORDER)
+		goto drop_hpage;
+
 	if (find_pmd_or_thp_or_none(mm, haddr, &pmd) != SCAN_SUCCEED)
 		goto drop_hpage;