Changes: - implemented 'zone chains' zonelist_t and gfp_mask indexed zonelists[] speedups (Linus' idea) to handle fallback zones. This should enable advanced NUMA-style allocations as well. [fallback to different CPUs is possible via changing build_zonelists().] - <=16MB RAM boxes should boot just fine now. - added page->zone for easier deallocation and generic cleanliness. This also helps NUMA. - cleaned up the page-allocator namespace, there are only two 'core' page-allocation functions left: __alloc_pages() and __free_pages_ok(). - modules should compile again. - we are now inlining the 'put_page_testzero()' part of __free_page_ok. This is subtle as page->count for reserved pages is now 'rotating' - this is fine though and lets us to put the rare PageReserved() branch into __free_page_ok(). - cleaned up pgtable.h, split into lowlevel and highlevel parts, this fixes dependencies in mm.h & misc.c. - serial.c didnt clear freshly allocated bootmem - as a result now all bootmem allocations are explicitly cleared, it's not performance critical anyway. - fixed code,data,initmem reporting. - fixed boot task's swapper_pg_dir clearing comments, reports welcome. -- mingo