diff --git a/mm/util.c b/mm/util.c
index 4df23d64aac7ae0c4846ba72f31ee1f20a21c143..1ea0551380435edf79df72cd11ea6f27bec1495e 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -478,7 +478,7 @@ bool page_mapped(struct page *page)
 		return true;
 	if (PageHuge(page))
 		return false;
-	for (i = 0; i < hpage_nr_pages(page); i++) {
+	for (i = 0; i < (1 << compound_order(page)); i++) {
 		if (atomic_read(&page[i]._mapcount) >= 0)
 			return true;
 	}