--- x/include/linux/rmap.h
+++ y/include/linux/rmap.h
@@ -213,8 +213,17 @@ static inline void __folio_rmap_sanity_c
 	 */
 
 	VM_WARN_ON_ONCE(nr_pages <= 0);
-	VM_WARN_ON_FOLIO(page_folio(page) != folio, folio);
-	VM_WARN_ON_FOLIO(page_folio(page + nr_pages - 1) != folio, folio);
+	if (!folio_test_large(folio)) {
+		VM_WARN_ON_FOLIO(page_folio(page) != folio, folio);
+		VM_WARN_ON_FOLIO(page_folio(page + nr_pages - 1) != folio, folio);
+	} else {
+		struct page *p = compound_head(page);
+
+		VM_WARN_ON_FOLIO(page_folio(p) != folio, folio);
+		p = page + nr_pages - 1;
+		p = compound_head(p);
+		VM_WARN_ON_FOLIO(page_folio(p) != folio, folio);
+	}
 
 	switch (level) {
 	case RMAP_LEVEL_PTE: