From 1f289d2d63affff488097047c59dd33c1e713024 Mon Sep 17 00:00:00 2001 From: Ravikiran G Thirumalai Date: Sun, 7 Aug 2005 09:42:50 -0700 Subject: [PATCH] --- yaml --- r: 5705 b: refs/heads/master c: 4b0271eb9da5170ab5cadf2edf97c84712c82550 h: refs/heads/master i: 5703: 6ba722cf50f63c80c67cf1be5c447ffb8446eea4 v: v3 --- [refs] | 2 +- trunk/arch/i386/mm/discontig.c | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 154143a7cf55..3b611cdfb7c0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 079da354db3473b56eb938ca53a2cb0804ea9c8c +refs/heads/master: 4b0271eb9da5170ab5cadf2edf97c84712c82550 diff --git a/trunk/arch/i386/mm/discontig.c b/trunk/arch/i386/mm/discontig.c index c369a8bf7cbe..6711ce3f6916 100644 --- a/trunk/arch/i386/mm/discontig.c +++ b/trunk/arch/i386/mm/discontig.c @@ -243,14 +243,6 @@ static unsigned long calculate_numa_remap_pages(void) /* now the roundup is correct, convert to PAGE_SIZE pages */ size = size * PTRS_PER_PTE; - if (node_end_pfn[nid] & (PTRS_PER_PTE-1)) { - /* - * Adjust size if node_end_pfn is not on a proper - * pmd boundary. remap_numa_kva will barf otherwise. - */ - size += node_end_pfn[nid] & (PTRS_PER_PTE-1); - } - /* * Validate the region we are allocating only contains valid * pages. @@ -270,6 +262,17 @@ static unsigned long calculate_numa_remap_pages(void) reserve_pages += size; printk("Shrinking node %d from %ld pages to %ld pages\n", nid, node_end_pfn[nid], node_end_pfn[nid] - size); + + if (node_end_pfn[nid] & (PTRS_PER_PTE-1)) { + /* + * Align node_end_pfn[] and node_remap_start_pfn[] to + * pmd boundary. remap_numa_kva will barf otherwise. + */ + printk("Shrinking node %d further by %ld pages for proper alignment\n", + nid, node_end_pfn[nid] & (PTRS_PER_PTE-1)); + size += node_end_pfn[nid] & (PTRS_PER_PTE-1); + } + node_end_pfn[nid] -= size; node_remap_start_pfn[nid] = node_end_pfn[nid]; }