/** * sk_filter_rcu_release: Release a socket filter by rcu_head * @rcu: rcu_head that contains the sk_filter to free */ static void sk_filter_rcu_release(struct rcu_head *rcu) { struct sk_filter *fp = container_of(rcu, struct sk_filter, rcu); bpf_jit_free(fp); sk_filter_release(fp); }
void bpf_destroy_jit_filter(bpf_jit_filter *filter) { if (filter->func != bpf_jit_accept_all) bpf_jit_free(filter->func, filter->size); #ifdef _KERNEL free(filter, M_BPFJIT); #else free(filter); #endif }