]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
CMA: make putback_lru_pages() call conditional
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 20 Feb 2013 02:13:58 +0000 (13:13 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 20 Feb 2013 05:52:20 +0000 (16:52 +1100)
As per documentation and other places calling putback_lru_pages(),
putback_lru_pages() is called on error only.  Make the CMA code behave
consistently.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/page_alloc.c

index 998d1141c764238ed0c1062327c81d98a5942fd3..5948a77994bb32f5befd582ff311ca98ceceafbc 100644 (file)
@@ -5806,8 +5806,8 @@ static int __alloc_contig_migrate_range(struct compact_control *cc,
                                    0, false, MIGRATE_SYNC,
                                    MR_CMA);
        }
-
-       putback_movable_pages(&cc->migratepages);
+       if (ret < 0)
+               putback_movable_pages(&cc->migratepages);
        return ret > 0 ? 0 : ret;
 }