unsigned long min_low_pfn;
 unsigned long max_pfn;
 
-static LIST_HEAD(bdata_list);
 #ifdef CONFIG_CRASH_DUMP
 /*
  * If we have booted due to a crash, max_pfn will be a very low value. We need
 
 bootmem_data_t bootmem_node_data[MAX_NUMNODES] __initdata;
 
+static struct list_head bdata_list __initdata = LIST_HEAD_INIT(bdata_list);
+
 static int bootmem_debug;
 
 static int __init bootmem_debug_setup(char *buf)
  */
 static void __init link_bootmem(bootmem_data_t *bdata)
 {
-       bootmem_data_t *ent;
+       struct list_head *iter;
 
-       if (list_empty(&bdata_list)) {
-               list_add(&bdata->list, &bdata_list);
-               return;
-       }
-       /* insert in order */
-       list_for_each_entry(ent, &bdata_list, list) {
-               if (bdata->node_boot_start < ent->node_boot_start) {
-                       list_add_tail(&bdata->list, &ent->list);
-                       return;
-               }
+       list_for_each(iter, &bdata_list) {
+               bootmem_data_t *ent;
+
+               ent = list_entry(iter, bootmem_data_t, list);
+               if (bdata->node_boot_start < ent->node_boot_start)
+                       break;
        }
-       list_add_tail(&bdata->list, &bdata_list);
+       list_add_tail(&bdata->list, iter);
 }
 
 /*