Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6b50824 authored by Eric Dumazet's avatar Eric Dumazet Committed by Pablo Neira Ayuso
Browse files

netfilter: x_tables: xt_free_table_info() cleanup



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

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 397304b5
Loading
Loading
Loading
Loading
+5 −18
Original line number Diff line number Diff line
@@ -711,28 +711,15 @@ void xt_free_table_info(struct xt_table_info *info)
{
	int cpu;

	for_each_possible_cpu(cpu) {
		if (info->size <= PAGE_SIZE)
			kfree(info->entries[cpu]);
		else
			vfree(info->entries[cpu]);
	}
	for_each_possible_cpu(cpu)
		kvfree(info->entries[cpu]);

	if (info->jumpstack != NULL) {
		if (sizeof(void *) * info->stacksize > PAGE_SIZE) {
		for_each_possible_cpu(cpu)
				vfree(info->jumpstack[cpu]);
		} else {
			for_each_possible_cpu(cpu)
				kfree(info->jumpstack[cpu]);
		}
			kvfree(info->jumpstack[cpu]);
		kvfree(info->jumpstack);
	}

	if (sizeof(void **) * nr_cpu_ids > PAGE_SIZE)
		vfree(info->jumpstack);
	else
		kfree(info->jumpstack);

	free_percpu(info->stackptr);

	kfree(info);