diff options
Diffstat (limited to 'net/bridge')
-rw-r--r-- | net/bridge/netfilter/ebtables.c | 9 |
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) |