Skip to content

Commit

Permalink
mm: migrate: fix double call of radix_tree_replace_slot()
Browse files Browse the repository at this point in the history
radix_tree_replace_slot() is called twice for head page, it's obviously
a bug.  Let's fix it.

Link: http://lkml.kernel.org/r/[email protected]
Fixes: e71769a ("mm: enable thp migration for shmem thp")
Signed-off-by: Naoya Horiguchi <[email protected]>
Reported-by: Matthew Wilcox <[email protected]>
Reviewed-by: Andrew Morton <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: "Kirill A. Shutemov" <[email protected]>
Cc: Zi Yan <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Naoya Horiguchi authored and torvalds committed May 12, 2018
1 parent 3955333 commit 013567b
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions mm/migrate.c
Original file line number Diff line number Diff line change
Expand Up @@ -528,14 +528,12 @@ int migrate_page_move_mapping(struct address_space *mapping,
int i;
int index = page_index(page);

for (i = 0; i < HPAGE_PMD_NR; i++) {
for (i = 1; i < HPAGE_PMD_NR; i++) {
pslot = radix_tree_lookup_slot(&mapping->i_pages,
index + i);
radix_tree_replace_slot(&mapping->i_pages, pslot,
newpage + i);
}
} else {
radix_tree_replace_slot(&mapping->i_pages, pslot, newpage);
}

/*
Expand Down

0 comments on commit 013567b

Please sign in to comment.