Merge ../linus
[pandora-kernel.git] / net / core / flow.c
index 55789f8..2191af5 100644 (file)
@@ -79,7 +79,7 @@ static void flow_cache_new_hashrnd(unsigned long arg)
 {
        int i;
 
-       for_each_cpu(i)
+       for_each_possible_cpu(i)
                flow_hash_rnd_recalc(i) = 1;
 
        flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
@@ -318,12 +318,10 @@ static void __devinit flow_cache_cpu_prepare(int cpu)
                /* NOTHING */;
 
        flow_table(cpu) = (struct flow_cache_entry **)
-               __get_free_pages(GFP_KERNEL, order);
+               __get_free_pages(GFP_KERNEL|__GFP_ZERO, order);
        if (!flow_table(cpu))
                panic("NET: failed to allocate flow cache order %lu\n", order);
 
-       memset(flow_table(cpu), 0, PAGE_SIZE << order);
-
        flow_hash_rnd_recalc(cpu) = 1;
        flow_count(cpu) = 0;
 
@@ -363,7 +361,7 @@ static int __init flow_cache_init(void)
        flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
        add_timer(&flow_hash_rnd_timer);
 
-       for_each_cpu(i)
+       for_each_possible_cpu(i)
                flow_cache_cpu_prepare(i);
 
        hotcpu_notifier(flow_cache_cpu, 0);