page->private should not be set in tail pages. Commit 4265d67e405a ("mm/migrate_device: add THP splitting during migration") removed a DEBUG_VM check without a proper reason[1]. Add it back.
Unified · Split
| @@ -3591,6 +3591,13 @@ static void __split_folio_to_order(struct folio *folio, int old_order, · 3590 unmodified lines | |||
| 3591 | new_folio->mapping = folio->mapping; | 3591 | new_folio->mapping = folio->mapping; |
| 3592 | new_folio->index = folio->index + i; | 3592 | new_folio->index = folio->index + i; |
| 3593 | 3593 | ||
| 3594 | /* | ||
| 3595 | * page->private should not be set in tail pages. Warn once | ||
| 3596 | * if private is unexpectedly set. Do it before swap.val assignment | ||
| 3597 | * since private overlaps with swap.val. | ||
| 3598 | */ | ||
| 3599 | VM_WARN_ON_ONCE_PAGE(new_folio->private, new_head); | ||
| 3600 | |||
| 3594 | if (folio_test_swapcache(folio)) | 3601 | if (folio_test_swapcache(folio)) |
| 3595 | new_folio->swap.val = folio->swap.val + i; | 3602 | new_folio->swap.val = folio->swap.val + i; |
| 3596 | 3603 | ||