mm: split_free_page ignore memory watermarks for CMA

Memory watermarks were sometimes preventing CMA allocations
in low memory.

Change-Id: I550ec987cbd6bc6dadd72b4a764df20cd0758479
Signed-off-by: Liam Mark <lmark@codeaurora.org>
This commit is contained in:
Liam Mark 2012-11-27 18:49:58 -08:00 committed by David Keitel
parent 81f6201534
commit 78ec19c5f9

View file

@ -2146,7 +2146,8 @@ int __isolate_free_page(struct page *page, unsigned int order)
if (!is_migrate_isolate(mt)) { if (!is_migrate_isolate(mt)) {
/* Obey watermarks as if the page was being allocated */ /* Obey watermarks as if the page was being allocated */
watermark = low_wmark_pages(zone) + (1 << order); watermark = low_wmark_pages(zone) + (1 << order);
if (!zone_watermark_ok(zone, 0, watermark, 0, 0)) if (!is_migrate_cma(mt) &&
!zone_watermark_ok(zone, 0, watermark, 0, 0))
return 0; return 0;
__mod_zone_freepage_state(zone, -(1UL << order), mt); __mod_zone_freepage_state(zone, -(1UL << order), mt);