aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2007-02-20 16:57:51 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-20 20:10:13 -0500
commit53b8a315b76a3f3c70a5644976c0095460eb13d8 (patch)
treef407a607adb1f552942aef9150ec709ed3f01798 /net/bridge
parent74c7aa8b8581e0ba8d6d17c623b9279aaabbb0cf (diff)
[PATCH] Convert highest_possible_processor_id to nr_cpu_ids
We frequently need the maximum number of possible processors in order to allocate arrays for all processors. So far this was done using highest_possible_processor_id(). However, we do need the number of processors not the highest id. Moreover the number was so far dynamically calculated on each invokation. The number of possible processors does not change when the system is running. We can therefore calculate that number once. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Frederik Deweerdt <frederik.deweerdt@gmail.com> Cc: Neil Brown <neilb@suse.de> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/netfilter/ebtables.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index 34c49799f9b3..ac9984f98e59 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -833,8 +833,7 @@ static int translate_table(char *name, struct ebt_table_info *newinfo)
833 /* this will get free'd in do_replace()/ebt_register_table() 833 /* this will get free'd in do_replace()/ebt_register_table()
834 if an error occurs */ 834 if an error occurs */
835 newinfo->chainstack = 835 newinfo->chainstack =
836 vmalloc((highest_possible_processor_id()+1) 836 vmalloc(nr_cpu_ids * sizeof(*(newinfo->chainstack)));
837 * sizeof(*(newinfo->chainstack)));
838 if (!newinfo->chainstack) 837 if (!newinfo->chainstack)
839 return -ENOMEM; 838 return -ENOMEM;
840 for_each_possible_cpu(i) { 839 for_each_possible_cpu(i) {
@@ -947,8 +946,7 @@ static int do_replace(void __user *user, unsigned int len)
947 if (tmp.num_counters >= INT_MAX / sizeof(struct ebt_counter)) 946 if (tmp.num_counters >= INT_MAX / sizeof(struct ebt_counter))
948 return -ENOMEM; 947 return -ENOMEM;
949 948
950 countersize = COUNTER_OFFSET(tmp.nentries) * 949 countersize = COUNTER_OFFSET(tmp.nentries) * nr_cpu_ids;
951 (highest_possible_processor_id()+1);
952 newinfo = vmalloc(sizeof(*newinfo) + countersize); 950 newinfo = vmalloc(sizeof(*newinfo) + countersize);
953 if (!newinfo) 951 if (!newinfo)
954 return -ENOMEM; 952 return -ENOMEM;
@@ -1168,8 +1166,7 @@ int ebt_register_table(struct ebt_table *table)
1168 return -EINVAL; 1166 return -EINVAL;
1169 } 1167 }
1170 1168
1171 countersize = COUNTER_OFFSET(repl->nentries) * 1169 countersize = COUNTER_OFFSET(repl->nentries) * nr_cpu_ids;
1172 (highest_possible_processor_id()+1);
1173 newinfo = vmalloc(sizeof(*newinfo) + countersize); 1170 newinfo = vmalloc(sizeof(*newinfo) + countersize);
1174 ret = -ENOMEM; 1171 ret = -ENOMEM;
1175 if (!newinfo) 1172 if (!newinfo)