After commit 236c32eb1096 ("mm: migrate: clean up migrate_prep{_local}")',
do_migrate_pages can return uninitialized variable 'err' (which is
propagated to user-space as error) when 'from' and 'to' nodesets
are identical. This can be reproduced with LTP migrate_pages01,
which calls migrate_pages() with same set for both old/new_nodes.

Add 'err' initialization back.

Fixes: 236c32eb1096 ("mm: migrate: clean up migrate_prep{_local}")
Cc: Zi Yan <z...@nvidia.com>
Cc: Yang Shi <shy828...@gmail.com>
Cc: Jan Kara <j...@suse.cz>
Cc: Matthew Wilcox <wi...@infradead.org>
Cc: Mel Gorman <mgor...@suse.de>
Cc: Michal Hocko <mho...@suse.com>
Cc: Song Liu <songliubrav...@fb.com>
Cc: Andrew Morton <a...@linux-foundation.org>
Signed-off-by: Jan Stancek <jstan...@redhat.com>
---
 mm/mempolicy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 8cf96bd21341..2c3a86502053 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1111,7 +1111,7 @@ int do_migrate_pages(struct mm_struct *mm, const 
nodemask_t *from,
                     const nodemask_t *to, int flags)
 {
        int busy = 0;
-       int err;
+       int err = 0;
        nodemask_t tmp;
 
        migrate_prep();
-- 
2.18.1

Reply via email to