From: Dave Hansen The next patch in this series will remove the arch-independent clearing of the pgdat's. This first patch removes the i386 dependency on that behavior. The new i386 function, remapped_pgdat_init() takes care of initializing the pgdats which are finally mapped after paging_init() is done. The zone_sizes_init() call has to occur after the pgdat clearing. zone_sizes_init() is currently called from the end of paging_init(), because that's the first place where the pgdats could have been zeroed. However, zone_sizes_init() really doesn't have anything to do with paging, and probably shouldn't be in paging_init(). Moving this call into setup_memory() allows the declaration of zone_sizes_init() to change files as well, which means a net removal of one #ifdef. It also provides a handy place to put the new function, far away from the paging code that it really has nothing to do with. Moving files required only using highend_pfn inside of the HIGHMEM ifdef, but this saves a line of code anyway. Fixes from: Yasunori Goto Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/setup.c | 42 +++++++++++++++++++++++++++++++++++++++ 25-akpm/arch/i386/mm/discontig.c | 4 --- 25-akpm/arch/i386/mm/init.c | 26 ------------------------ 3 files changed, 43 insertions(+), 29 deletions(-) diff -puN arch/i386/kernel/setup.c~x86-memset-the-i386-numa-pgdats-in-arch-code arch/i386/kernel/setup.c --- 25/arch/i386/kernel/setup.c~x86-memset-the-i386-numa-pgdats-in-arch-code 2005-02-28 16:36:28.000000000 -0800 +++ 25-akpm/arch/i386/kernel/setup.c 2005-02-28 16:36:28.000000000 -0800 @@ -40,6 +40,7 @@ #include #include #include +#include #include