aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@saeurebad.de>2008-05-23 16:04:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-24 12:56:07 -0400
commitf7232154198f928fc25f420d6190468212a7632a (patch)
tree3216938f94face00fd6c6094bc8ccb66c2ef3619
parentf899b0adc6fc8f60a9db8b52f36f06fd1abeaf7c (diff)
mm: don't drop a partial page in a zone's memory map size
In a zone's present pages number, account for all pages occupied by the memory map, including a partial. Signed-off-by: Johannes Weiner <hannes@saeurebad.de> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/page_alloc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 63835579323a..035300299f94 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3378,7 +3378,8 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
3378 * is used by this zone for memmap. This affects the watermark 3378 * is used by this zone for memmap. This affects the watermark
3379 * and per-cpu initialisations 3379 * and per-cpu initialisations
3380 */ 3380 */
3381 memmap_pages = (size * sizeof(struct page)) >> PAGE_SHIFT; 3381 memmap_pages =
3382 PAGE_ALIGN(size * sizeof(struct page)) >> PAGE_SHIFT;
3382 if (realsize >= memmap_pages) { 3383 if (realsize >= memmap_pages) {
3383 realsize -= memmap_pages; 3384 realsize -= memmap_pages;
3384 printk(KERN_DEBUG 3385 printk(KERN_DEBUG