This patch rewrites part of the discontig code in 2.5 (based on Jack and Kimi's work) to achieve a few things: o fix bugs so that sn2 will work o allow the virtual mem map to be used along with discontigmem o allow generic kernels to work across all platforms There are a few hunks that remove #ifdef CONFIG_VIRTUAL_MEMMAP lines, but maybe that config option should be removed altogether and made the default? It would be nice to do that for CONFIG_DISCONTIGMEM too, but that would mean touching other architectures, so is less likely to happen. There's also still an issue with CONFIG_FORCE_MAX_ZONEORDER. I'd appreciate any feedback (testing, comments) that you can provide. Here's the diffstat: arch/ia64/Kconfig | 40 ----- arch/ia64/kernel/setup.c | 35 ++--- arch/ia64/mm/discontig.c | 297 +++++++++++++++++++------------------------ arch/ia64/mm/init.c | 183 ++++++++++++-------------- include/asm-ia64/mmzone.h | 144 +++----------------- include/asm-ia64/nodedata.h | 39 +---- include/asm-ia64/numa.h | 16 ++ include/asm-ia64/page.h | 14 -- include/asm-ia64/pgtable.h | 4 include/asm-ia64/processor.h | 2 include/linux/mm.h | 4 mm/bootmem.c | 36 +++-- mm/memory.c | 2 mm/page_alloc.c | 9 - 14 files changed, 327 insertions(+), 498 deletions(-) Thanks, Jesse