Re: [PATCH v2 net-next] fix unsafe set_memory_rw from softirq

From: Eric Dumazet
Date: Thu Oct 03 2013 - 19:02:20 EST


On Thu, 2013-10-03 at 15:47 -0700, Alexei Starovoitov wrote:
> on x86 system with net.core.bpf_jit_enable = 1
>

> --- a/net/core/filter.c
> +++ b/net/core/filter.c
> @@ -644,7 +644,9 @@ void sk_filter_release_rcu(struct rcu_head *rcu)
> struct sk_filter *fp = container_of(rcu, struct sk_filter, rcu);
>
> bpf_jit_free(fp);
> +#if !defined(CONFIG_X86_64) /* x86_64 has a deferred free */
> kfree(fp);
> +#endif

Sorry this is not very nice.

Make bpf_jit_free(fp) a bool ? true : caller must free, false : caller
must not free ?

if (bpf_jit_free(fp))
kfree(fp);

Or move the kfree() in bpf_jit_free()



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/