Commit edc0636c authored by Linus Torvalds's avatar Linus Torvalds Committed by Greg Kroah-Hartman

revert "x86_64: allocate sparsemem memmap above 4G"

Reverted upstream by commit 6a22c57b

Revert this commit:

	commit 2e1c49db
	Author: Zou Nan hai <nanhai.zou@intel.com>
	Date:   Fri Jun 1 00:46:28 2007 -0700
	
	x86_64: allocate sparsemem memmap above 4G

This reverts commit 2e1c49db.

First off, testing in Fedora has shown it to cause boot failures,
bisected down by Martin Ebourne, and reported by Dave Jobes.  So the
commit will likely be reverted in the 2.6.23 stable kernels.

Secondly, in the 2.6.24 model, x86-64 has now grown support for
SPARSEMEM_VMEMMAP, which disables the relevant code anyway, so while the
bug is not visible any more, it's become invisible due to the code just
being irrelevant and no longer enabled on the only architecture that
this ever affected.
Reported-by: default avatarDave Jones <davej@redhat.com>
Tested-by: default avatarMartin Ebourne <fedora@ebourne.me.uk>
Cc: Zou Nan hai <nanhai.zou@intel.com>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: default avatarAndy Whitcroft <apw@shadowen.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Cc: Chuck Ebbert <cebbert@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 963bbb3b
...@@ -734,12 +734,6 @@ int in_gate_area_no_task(unsigned long addr) ...@@ -734,12 +734,6 @@ int in_gate_area_no_task(unsigned long addr)
return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END); return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END);
} }
void * __init alloc_bootmem_high_node(pg_data_t *pgdat, unsigned long size)
{
return __alloc_bootmem_core(pgdat->bdata, size,
SMP_CACHE_BYTES, (4UL*1024*1024*1024), 0);
}
const char *arch_vma_name(struct vm_area_struct *vma) const char *arch_vma_name(struct vm_area_struct *vma)
{ {
if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso) if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso)
......
...@@ -59,7 +59,6 @@ extern void *__alloc_bootmem_core(struct bootmem_data *bdata, ...@@ -59,7 +59,6 @@ extern void *__alloc_bootmem_core(struct bootmem_data *bdata,
unsigned long align, unsigned long align,
unsigned long goal, unsigned long goal,
unsigned long limit); unsigned long limit);
extern void *alloc_bootmem_high_node(pg_data_t *pgdat, unsigned long size);
#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
extern void reserve_bootmem(unsigned long addr, unsigned long size); extern void reserve_bootmem(unsigned long addr, unsigned long size);
......
...@@ -215,12 +215,6 @@ static int __meminit sparse_init_one_section(struct mem_section *ms, ...@@ -215,12 +215,6 @@ static int __meminit sparse_init_one_section(struct mem_section *ms,
return 1; return 1;
} }
__attribute__((weak)) __init
void *alloc_bootmem_high_node(pg_data_t *pgdat, unsigned long size)
{
return NULL;
}
static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum) static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum)
{ {
struct page *map; struct page *map;
...@@ -231,11 +225,6 @@ static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum) ...@@ -231,11 +225,6 @@ static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum)
if (map) if (map)
return map; return map;
map = alloc_bootmem_high_node(NODE_DATA(nid),
sizeof(struct page) * PAGES_PER_SECTION);
if (map)
return map;
map = alloc_bootmem_node(NODE_DATA(nid), map = alloc_bootmem_node(NODE_DATA(nid),
sizeof(struct page) * PAGES_PER_SECTION); sizeof(struct page) * PAGES_PER_SECTION);
if (map) if (map)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment