commit | 2da9f6305f306ffbbb44790675799328fb73119d | [log] [tgz] |
---|---|---|
author | Nicholas Piggin <[email protected]> | Fri Nov 13 22:51:46 2020 -0800 |
committer | Linus Torvalds <[email protected]> | Sat Nov 14 11:26:03 2020 -0800 |
tree | 337d0326c6a5d1a71ef72a7ef8782da3df36d22f | |
parent | d20bdd571ee5c9966191568527ecdb1bd4b52368 [diff] |
mm/vmscan: fix NR_ISOLATED_FILE corruption on 64-bit Previously the negated unsigned long would be cast back to signed long which would have the correct negative value. After commit 730ec8c01a2b ("mm/vmscan.c: change prototype for shrink_page_list"), the large unsigned int converts to a large positive signed long. Symptoms include CMA allocations hanging forever holding the cma_mutex due to alloc_contig_range->...->isolate_migratepages_block waiting forever in "while (unlikely(too_many_isolated(pgdat)))". [[email protected]: fix -stat.nr_lazyfree_fail as well, per Michal] Fixes: 730ec8c01a2b ("mm/vmscan.c: change prototype for shrink_page_list") Signed-off-by: Nicholas Piggin <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Acked-by: Michal Hocko <[email protected]> Cc: Vaneet Narang <[email protected]> Cc: Maninder Singh <[email protected]> Cc: Amit Sahrawat <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: <[email protected]> Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Linus Torvalds <[email protected]>