netfilter: x_tables: xt_free_table_info() cleanup

kvfree() helper can make xt_free_table_info() much cleaner.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Eric Dumazet 2014-06-24 02:15:35 -07:00 committed by Pablo Neira Ayuso
parent 397304b52d
commit f6b50824f7

View file

@ -711,28 +711,15 @@ void xt_free_table_info(struct xt_table_info *info)
{ {
int cpu; int cpu;
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu)
if (info->size <= PAGE_SIZE) kvfree(info->entries[cpu]);
kfree(info->entries[cpu]);
else
vfree(info->entries[cpu]);
}
if (info->jumpstack != NULL) { if (info->jumpstack != NULL) {
if (sizeof(void *) * info->stacksize > PAGE_SIZE) { for_each_possible_cpu(cpu)
for_each_possible_cpu(cpu) kvfree(info->jumpstack[cpu]);
vfree(info->jumpstack[cpu]); kvfree(info->jumpstack);
} else {
for_each_possible_cpu(cpu)
kfree(info->jumpstack[cpu]);
}
} }
if (sizeof(void **) * nr_cpu_ids > PAGE_SIZE)
vfree(info->jumpstack);
else
kfree(info->jumpstack);
free_percpu(info->stackptr); free_percpu(info->stackptr);
kfree(info); kfree(info);