kernel-hacking-2024-linux-s.../mm
Andy Whitcroft 85770ffe4f sparsemem: ensure we initialise the node mapping for SPARSEMEM_STATIC
Booting SPARSEMEM on NUMA systems trips a BUG in page_alloc.c:

	Initializing HighMem for node 0 (00038000:00100000)
	Initializing HighMem for node 1 (00100000:001ffe00)
	------------[ cut here ]------------
	kernel BUG at /home/apw/git/linux-2.6/mm/page_alloc.c:456!
	[...]

This occurs because the section to node id mapping is not being
setup correctly during init under SPARSEMEM_STATIC, leading to an
attempt to free pages from all nodes into the zones on node 0.

When the zone_table[] was removed in the following commit, a new
section to node mapping table was introduced:

    commit 89689ae7f9
    [PATCH] Get rid of zone_table[]

That conversion inadvertantly only initialised the node mapping in
SPARSEMEM_EXTREME.  Ensure we initialise the node mapping in
SPARSEMEM_STATIC.

[akpm@linux-foundation.org: make the stubs static inline]
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-22 19:52:44 -07:00
..
allocpercpu.c
backing-dev.c
bootmem.c
bounce.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
fadvise.c
filemap.c Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2007-08-11 16:01:06 -07:00
filemap.h
filemap_xip.c mm: fault feedback #2 2007-07-19 10:04:41 -07:00
fremap.c only allow nonlinear vmas for ram backed filesystems 2007-07-19 10:04:41 -07:00
highmem.c
hugetlb.c fix hugetlb page allocation leak 2007-07-24 12:24:59 -07:00
internal.h
Kconfig Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION 2007-07-29 16:45:38 -07:00
madvise.c
Makefile CONFIG_BOUNCE to avoid useless inclusion of bounce buffer logic 2007-07-17 10:23:02 -07:00
memory.c remove handle_mm_fault export 2007-07-21 17:49:16 -07:00
memory_hotplug.c
mempolicy.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
mempool.c
migrate.c memory unplug: isolate_lru_page fix 2007-07-26 11:35:17 -07:00
mincore.c
mlock.c
mmap.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
mmzone.c
mprotect.c mm: variable length argument support 2007-07-19 10:04:45 -07:00
mremap.c mm: variable length argument support 2007-07-19 10:04:45 -07:00
msync.c
nommu.c nommu: vmalloc_32_user()/vm_insert_page() and symbol exports. 2007-07-21 17:49:14 -07:00
oom_kill.c oom: print points as unsigned long 2007-07-31 15:39:36 -07:00
page-writeback.c move page writeback acounting out of macros 2007-07-19 10:04:52 -07:00
page_alloc.c Do not trigger OOM-killer for high-order allocation failures 2007-07-31 15:39:36 -07:00
page_io.c
pdflush.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
prio_tree.c
quicklist.c
readahead.c readahead: sanify file_ra_state names 2007-07-19 10:04:44 -07:00
rmap.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
shmem.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
shmem_acl.c
slab.c slab: correctly handle __GFP_ZERO 2007-07-24 12:24:59 -07:00
slob.c slob: reduce list scanning 2007-07-21 17:49:16 -07:00
slub.c SLUB: Fix dynamic dma kmalloc cache creation 2007-08-09 21:57:16 -07:00
sparse.c sparsemem: ensure we initialise the node mapping for SPARSEMEM_STATIC 2007-08-22 19:52:44 -07:00
swap.c
swap_state.c
swapfile.c Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION 2007-07-29 16:45:38 -07:00
thrash.c
tiny-shmem.c
truncate.c mm: merge populate and nopage into fault (fixes nonlinear) 2007-07-19 10:04:41 -07:00
util.c add kstrndup 2007-07-18 08:47:39 -07:00
vmalloc.c lguest: export symbols for lguest as a module 2007-07-19 10:04:52 -07:00
vmscan.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
vmstat.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00