Commit 0db63d7e25f96e2c6da925c002badf6f144ddf30
Committed by
Linus Torvalds
1 parent
bac7169660
Exists in
master
and in
20 other branches
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: Mel Gorman <mgorman@suse.de> Tested-by: Tony Prisk <linux@prisktech.co.nz> Reported-by: Thierry Reding <thierry.reding@avionic-design.de> Acked-by: Rik van Riel <riel@redhat.com> Acked-by: Minchan 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff
mm/compaction.c
... | ... | @@ -346,7 +346,7 @@ |
346 | 346 | * pages requested were isolated. If there were any failures, 0 is |
347 | 347 | * returned and CMA will fail. |
348 | 348 | */ |
349 | - if (strict && nr_strict_required != total_isolated) | |
349 | + if (strict && nr_strict_required > total_isolated) | |
350 | 350 | total_isolated = 0; |
351 | 351 | |
352 | 352 | if (locked) |