Commit 6f912042 authored by KAMEZAWA Hiroyuki's avatar KAMEZAWA Hiroyuki Committed by Linus Torvalds
Browse files

[PATCH] for_each_possible_cpu: network codes



for_each_cpu() actually iterates across all possible CPUs.  We've had mistakes
in the past where people were using for_each_cpu() where they should have been
iterating across only online or present CPUs.  This is inefficient and
possibly buggy.

We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the
future.

This patch replaces for_each_cpu with for_each_possible_cpu under /net

Signed-off-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: default avatar"David S. Miller" <davem@davemloft.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent dd7ba3b8
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -829,7 +829,7 @@ static int translate_table(struct ebt_replace *repl,
				   		* sizeof(struct ebt_chainstack));
		if (!newinfo->chainstack)
			return -ENOMEM;
		for_each_cpu(i) {
		for_each_possible_cpu(i) {
			newinfo->chainstack[i] =
			   vmalloc(udc_cnt * sizeof(struct ebt_chainstack));
			if (!newinfo->chainstack[i]) {
@@ -901,7 +901,7 @@ static void get_counters(struct ebt_counter *oldcounters,
	       sizeof(struct ebt_counter) * nentries);

	/* add other counters to those of cpu 0 */
	for_each_cpu(cpu) {
	for_each_possible_cpu(cpu) {
		if (cpu == 0)
			continue;
		counter_base = COUNTER_BASE(oldcounters, nentries, cpu);
@@ -1036,7 +1036,7 @@ static int do_replace(void __user *user, unsigned int len)

	vfree(table->entries);
	if (table->chainstack) {
		for_each_cpu(i)
		for_each_possible_cpu(i)
			vfree(table->chainstack[i]);
		vfree(table->chainstack);
	}
@@ -1054,7 +1054,7 @@ static int do_replace(void __user *user, unsigned int len)
	vfree(counterstmp);
	/* can be initialized in translate_table() */
	if (newinfo->chainstack) {
		for_each_cpu(i)
		for_each_possible_cpu(i)
			vfree(newinfo->chainstack[i]);
		vfree(newinfo->chainstack);
	}
@@ -1201,7 +1201,7 @@ int ebt_register_table(struct ebt_table *table)
	mutex_unlock(&ebt_mutex);
free_chainstack:
	if (newinfo->chainstack) {
		for_each_cpu(i)
		for_each_possible_cpu(i)
			vfree(newinfo->chainstack[i]);
		vfree(newinfo->chainstack);
	}
@@ -1224,7 +1224,7 @@ void ebt_unregister_table(struct ebt_table *table)
	mutex_unlock(&ebt_mutex);
	vfree(table->private->entries);
	if (table->private->chainstack) {
		for_each_cpu(i)
		for_each_possible_cpu(i)
			vfree(table->private->chainstack[i]);
		vfree(table->private->chainstack);
	}
+1 −1
Original line number Diff line number Diff line
@@ -3346,7 +3346,7 @@ static int __init net_dev_init(void)
	 *	Initialise the packet receive queues.
	 */

	for_each_cpu(i) {
	for_each_possible_cpu(i) {
		struct softnet_data *queue;

		queue = &per_cpu(softnet_data, i);
+2 −2
Original line number Diff line number Diff line
@@ -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;
@@ -361,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);
+1 −1
Original line number Diff line number Diff line
@@ -1627,7 +1627,7 @@ static int neightbl_fill_info(struct neigh_table *tbl, struct sk_buff *skb,

		memset(&ndst, 0, sizeof(ndst));

		for_each_cpu(cpu) {
		for_each_possible_cpu(cpu) {
			struct neigh_statistics	*st;

			st = per_cpu_ptr(tbl->stats, cpu);
+2 −2
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ void __init net_random_init(void)
{
	int i;

	for_each_cpu(i) {
	for_each_possible_cpu(i) {
		struct nrnd_state *state = &per_cpu(net_rand_state,i);
		__net_srandom(state, i+jiffies);
	}
@@ -133,7 +133,7 @@ static int net_random_reseed(void)
	unsigned long seed[NR_CPUS];

	get_random_bytes(seed, sizeof(seed));
	for_each_cpu(i) {
	for_each_possible_cpu(i) {
		struct nrnd_state *state = &per_cpu(net_rand_state,i);
		__net_srandom(state, seed[i]);
	}
Loading