Commit 0db63d7e authored by Mel Gorman's avatar Mel Gorman Committed by Linus Torvalds

mm: compaction: correct the nr_strict va isolated check for CMA

Thierry reported that the "iron out" patch for isolate_freepages_block()
had problems due to the strict check being too strict with "mm:
compaction: Iron out isolate_freepages_block() and
isolate_freepages_range() -fix1".  It's possible that more pages than
necessary are isolated but the check still fails and I missed that this
fix was not picked up before RC1.  This same problem has been identified
in 3.7-RC1 by Tony Prisk and should be addressed by the following patch.
Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
Tested-by: default avatarTony Prisk <linux@prisktech.co.nz>
Reported-by: default avatarThierry Reding <thierry.reding@avionic-design.de>
Acked-by: default avatarRik van Riel <riel@redhat.com>
Acked-by: default avatarMinchan Kim <minchan@kernel.org>
Cc: Richard Davies <richard@arachsys.com>
Cc: Shaohua Li <shli@kernel.org>
Cc: Avi Kivity <avi@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent bac71696
...@@ -346,7 +346,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, ...@@ -346,7 +346,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc,
* pages requested were isolated. If there were any failures, 0 is * pages requested were isolated. If there were any failures, 0 is
* returned and CMA will fail. * returned and CMA will fail.
*/ */
if (strict && nr_strict_required != total_isolated) if (strict && nr_strict_required > total_isolated)
total_isolated = 0; total_isolated = 0;
if (locked) if (locked)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment