]> err.no Git - linux-2.6/blobdiff - mm/page_alloc.c
[SCTP]: Even more trivial sctp annotations.
[linux-2.6] / mm / page_alloc.c
index ebd425c2e2a7fe8402733d1a5166ca2a69fa6678..aa6fcc7ca66f1f8bc976b5798039c3a0672d09eb 100644 (file)
@@ -853,7 +853,7 @@ again:
                pcp = &zone_pcp(zone, cpu)->pcp[cold];
                local_irq_save(flags);
                if (!pcp->count) {
-                       pcp->count += rmqueue_bulk(zone, 0,
+                       pcp->count = rmqueue_bulk(zone, 0,
                                                pcp->batch, &pcp->list);
                        if (unlikely(!pcp->count))
                                goto failed;
@@ -1689,6 +1689,8 @@ void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone,
        for (pfn = start_pfn; pfn < end_pfn; pfn++) {
                if (!early_pfn_valid(pfn))
                        continue;
+               if (!early_pfn_in_nid(pfn, nid))
+                       continue;
                page = pfn_to_page(pfn);
                set_page_links(page, zone, nid, pfn);
                init_page_count(page);
@@ -2259,7 +2261,7 @@ unsigned long __init __absent_pages_in_range(int nid,
 
        /* Account for ranges past physical memory on this node */
        if (range_end_pfn > prev_end_pfn)
-               hole_pages = range_end_pfn -
+               hole_pages += range_end_pfn -
                                max(range_start_pfn, prev_end_pfn);
 
        return hole_pages;
@@ -2405,7 +2407,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
                zone->zone_pgdat = pgdat;
                zone->free_pages = 0;
 
-               zone->temp_priority = zone->prev_priority = DEF_PRIORITY;
+               zone->prev_priority = DEF_PRIORITY;
 
                zone_pcp_init(zone);
                INIT_LIST_HEAD(&zone->active_list);
@@ -2610,6 +2612,9 @@ unsigned long __init find_min_pfn_for_node(unsigned long nid)
 {
        int i;
 
+       /* Regions in the early_node_map can be in any order */
+       sort_node_map();
+
        /* Assuming a sorted map, the first range found has the starting pfn */
        for_each_active_range_index_in_nid(i, nid)
                return early_node_map[i].start_pfn;
@@ -2678,9 +2683,6 @@ void __init free_area_init_nodes(unsigned long *max_zone_pfn)
                        max(max_zone_pfn[i], arch_zone_lowest_possible_pfn[i]);
        }
 
-       /* Regions in the early_node_map can be in any order */
-       sort_node_map();
-
        /* Print out the zone ranges */
        printk("Zone PFN ranges:\n");
        for (i = 0; i < MAX_NR_ZONES; i++)