summaryrefslogtreecommitdiff
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2013-06-20 16:41:37 +0200
committerArnd Bergmann <arnd@arndb.de>2013-06-20 16:41:37 +0200
commit0a15e0b5b9342fd7fb3f40b24872c174b0e402ea (patch)
treefcaa440936a09a29d8c7c0329a59a1b673dfcc9e /mm/page_alloc.c
parent60d808ddff97071ee4c3e1d13454642f3d0e8ae1 (diff)
parent8bfdfc87dc3d00eb2f33e972b4177c36ca0e3d54 (diff)
downloadlinux-0a15e0b5b9342fd7fb3f40b24872c174b0e402ea.tar.gz
Merge tag 'omap-for-v3.11/pm-voltdomain-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup
From Tony Lindgren: PM voltage domain clean-up via Kevin Hilman <khilman@linaro.org>: OMAP: PM: remove requirement for voltage domain data; remove dummy data * tag 'omap-for-v3.11/pm-voltdomain-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: AM33xx: Remove the unused voltagedomain data ARM: OMAP2+: Powerdomain: Remove the need to always have a voltdm associated to a pwrdm Includes an update to Linux 3.10-rc6. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 378a15bcd649..c3edb624fccf 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1628,6 +1628,7 @@ static bool __zone_watermark_ok(struct zone *z, int order, unsigned long mark,
long min = mark;
long lowmem_reserve = z->lowmem_reserve[classzone_idx];
int o;
+ long free_cma = 0;
free_pages -= (1 << order) - 1;
if (alloc_flags & ALLOC_HIGH)
@@ -1637,9 +1638,10 @@ static bool __zone_watermark_ok(struct zone *z, int order, unsigned long mark,
#ifdef CONFIG_CMA
/* If allocation can't use CMA areas don't use free CMA pages */
if (!(alloc_flags & ALLOC_CMA))
- free_pages -= zone_page_state(z, NR_FREE_CMA_PAGES);
+ free_cma = zone_page_state(z, NR_FREE_CMA_PAGES);
#endif
- if (free_pages <= min + lowmem_reserve)
+
+ if (free_pages - free_cma <= min + lowmem_reserve)
return false;
for (o = 0; o < order; o++) {
/* At the next order, this order's pages become unavailable */