[PATCH x86,mm] cleanup: don't corrupt pgt_buf_end when we don'tallocated from it

From: Lai Jiangshan
Date: Thu Mar 29 2012 - 01:31:55 EST

when after_bootmem, alloc_low_page() allow page from get_zeroed_page(),
so we should not corrupt pgt_buf_end.

Signed-off-by: Lai Jiangshan <laijs@xxxxxxxxxxxxxx>
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 436a030..cba66c6 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -317,7 +317,7 @@ void __init cleanup_highmap(void)

static __ref void *alloc_low_page(unsigned long *phys)
- unsigned long pfn = pgt_buf_end++;
+ unsigned long pfn;
void *adr;

if (after_bootmem) {
@@ -327,6 +327,7 @@ static __ref void *alloc_low_page(unsigned long *phys)
return adr;

+ pfn = pgt_buf_end++;
if (pfn >= pgt_buf_top)
panic("alloc_low_page: ran out of memory");

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/