Remove bitmap initialization in free_area_init_core() --- linux-2.6.8.1-kame-kamezawa/mm/page_alloc.c | 36 ---------------------------- 1 files changed, 1 insertion(+), 35 deletions(-) diff -puN mm/page_alloc.c~eliminate-bitmap-p02 mm/page_alloc.c --- linux-2.6.8.1-kame/mm/page_alloc.c~eliminate-bitmap-p02 2004-08-21 08:53:20.026423144 +0900 +++ linux-2.6.8.1-kame-kamezawa/mm/page_alloc.c 2004-08-21 08:53:20.033422080 +0900 @@ -1514,42 +1514,8 @@ static void __init free_area_init_core(s zone_start_pfn += size; lmem_map += size; - for (i = 0; ; i++) { - unsigned long bitmap_size; - + for (i = 0; i < MAX_ORDER ; i++) { INIT_LIST_HEAD(&zone->free_area[i].free_list); - if (i == MAX_ORDER-1) { - zone->free_area[i].map = NULL; - break; - } - - /* - * Page buddy system uses "index >> (i+1)", - * where "index" is at most "size-1". - * - * The extra "+3" is to round down to byte - * size (8 bits per byte assumption). Thus - * we get "(size-1) >> (i+4)" as the last byte - * we can access. - * - * The "+1" is because we want to round the - * byte allocation up rather than down. So - * we should have had a "+7" before we shifted - * down by three. Also, we have to add one as - * we actually _use_ the last bit (it's [0,n] - * inclusive, not [0,n[). - * - * So we actually had +7+1 before we shift - * down by 3. But (n+8) >> 3 == (n >> 3) + 1 - * (modulo overflows, which we do not have). - * - * Finally, we LONG_ALIGN because all bitmap - * operations are on longs. - */ - bitmap_size = (size-1) >> (i+4); - bitmap_size = LONG_ALIGN(bitmap_size+1); - zone->free_area[i].map = - (unsigned long *) alloc_bootmem_node(pgdat, bitmap_size); } } } _