Now memcg in unmap_and_move checks BUG_ON of charge. But mem_cgroup_prepare_migration returns either 0 or -ENOMEM. If it returns -ENOMEM, it jumps out unlock without the check. If it returns 0, it can pass BUG_ON. So it's meaningless. Let's remove it. Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> Acked-by: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Signed-off-by: Minchan Kim <minchan.kim@xxxxxxxxx> --- mm/migrate.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index eb083a6..2abc9c9 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -683,7 +683,6 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, rc = -ENOMEM; goto unlock; } - BUG_ON(charge); if (PageWriteback(page)) { if (!force || !sync) -- 1.7.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>