summaryrefslogtreecommitdiffstats
path: root/mm/migrate.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/migrate.c')
-rw-r--r--mm/migrate.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/mm/migrate.c b/mm/migrate.c
index 1758fd215c0a..19a9b26af7e2 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1369,16 +1369,13 @@ out:
return rc;
}
-static inline int try_split_thp(struct page *page, struct page **page2,
- struct list_head *from)
+static inline int try_split_thp(struct page *page, struct list_head *split_pages)
{
- int rc = 0;
+ int rc;
lock_page(page);
- rc = split_huge_page_to_list(page, from);
+ rc = split_huge_page_to_list(page, split_pages);
unlock_page(page);
- if (!rc)
- list_safe_reset_next(page, *page2, lru);
return rc;
}
@@ -1482,7 +1479,7 @@ retry:
/* THP migration is unsupported */
if (is_thp) {
nr_thp_failed++;
- if (!try_split_thp(page, &page2, &thp_split_pages)) {
+ if (!try_split_thp(page, &thp_split_pages)) {
nr_thp_split++;
goto retry;
}
@@ -1501,7 +1498,7 @@ retry:
*/
if (is_thp && !nosplit) {
nr_thp_failed++;
- if (!try_split_thp(page, &page2, &thp_split_pages)) {
+ if (!try_split_thp(page, &thp_split_pages)) {
nr_thp_split++;
goto retry;
}