git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
net
/
core
/
flow.c
diff --git
a/net/core/flow.c
b/net/core/flow.c
index
2191af5
..
c4f2538
100644
(file)
--- a/
net/core/flow.c
+++ b/
net/core/flow.c
@@
-20,7
+20,6
@@
#include <linux/notifier.h>
#include <linux/cpu.h>
#include <linux/cpumask.h>
#include <linux/notifier.h>
#include <linux/cpu.h>
#include <linux/cpumask.h>
-#include <linux/mutex.h>
#include <net/flow.h>
#include <asm/atomic.h>
#include <asm/semaphore.h>
#include <net/flow.h>
#include <asm/atomic.h>
#include <asm/semaphore.h>
@@
-79,7
+78,7
@@
static void flow_cache_new_hashrnd(unsigned long arg)
{
int i;
{
int i;
- for_each_
possible_
cpu(i)
+ for_each_cpu(i)
flow_hash_rnd_recalc(i) = 1;
flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
flow_hash_rnd_recalc(i) = 1;
flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
@@
-288,11
+287,11
@@
static void flow_cache_flush_per_cpu(void *data)
void flow_cache_flush(void)
{
struct flow_flush_info info;
void flow_cache_flush(void)
{
struct flow_flush_info info;
- static DE
FIN
E_MUTEX(flow_flush_sem);
+ static DE
CLAR
E_MUTEX(flow_flush_sem);
/* Don't want cpus going down or up during this. */
lock_cpu_hotplug();
/* Don't want cpus going down or up during this. */
lock_cpu_hotplug();
-
mutex_lock
(&flow_flush_sem);
+
down
(&flow_flush_sem);
atomic_set(&info.cpuleft, num_online_cpus());
init_completion(&info.completion);
atomic_set(&info.cpuleft, num_online_cpus());
init_completion(&info.completion);
@@
-302,7
+301,7
@@
void flow_cache_flush(void)
local_bh_enable();
wait_for_completion(&info.completion);
local_bh_enable();
wait_for_completion(&info.completion);
-
mutex_unlock
(&flow_flush_sem);
+
up
(&flow_flush_sem);
unlock_cpu_hotplug();
}
unlock_cpu_hotplug();
}
@@
-318,10
+317,12
@@
static void __devinit flow_cache_cpu_prepare(int cpu)
/* NOTHING */;
flow_table(cpu) = (struct flow_cache_entry **)
/* NOTHING */;
flow_table(cpu) = (struct flow_cache_entry **)
- __get_free_pages(GFP_KERNEL
|__GFP_ZERO
, order);
+ __get_free_pages(GFP_KERNEL, order);
if (!flow_table(cpu))
panic("NET: failed to allocate flow cache order %lu\n", 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;
flow_hash_rnd_recalc(cpu) = 1;
flow_count(cpu) = 0;
@@
-361,7
+362,7
@@
static int __init flow_cache_init(void)
flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
add_timer(&flow_hash_rnd_timer);
flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
add_timer(&flow_hash_rnd_timer);
- for_each_
possible_
cpu(i)
+ for_each_cpu(i)
flow_cache_cpu_prepare(i);
hotcpu_notifier(flow_cache_cpu, 0);
flow_cache_cpu_prepare(i);
hotcpu_notifier(flow_cache_cpu, 0);