diff options
author | Johannes Weiner <hannes@saeurebad.de> | 2008-05-23 16:04:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-24 12:56:07 -0400 |
commit | f7232154198f928fc25f420d6190468212a7632a (patch) | |
tree | 3216938f94face00fd6c6094bc8ccb66c2ef3619 | |
parent | f899b0adc6fc8f60a9db8b52f36f06fd1abeaf7c (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.c | 3 |
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 |