Re: [PATCH net] bpf, perf: delay release of BPF prog after grace period

From: David Miller
Date: Wed Jun 29 2016 - 05:44:24 EST


From: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Mon, 27 Jun 2016 21:38:11 +0200

> Commit dead9f29ddcc ("perf: Fix race in BPF program unregister") moved
> destruction of BPF program from free_event_rcu() callback to __free_event(),
> which is problematic if used with tail calls: if prog A is attached as
> trace event directly, but at the same time present in a tail call map used
> by another trace event program elsewhere, then we need to delay destruction
> via RCU grace period since it can still be in use by the program doing the
> tail call (the prog first needs to be dropped from the tail call map, then
> trace event with prog A attached destroyed, so we get immediate destruction).
>
> Fixes: dead9f29ddcc ("perf: Fix race in BPF program unregister")
> Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
> Acked-by: Alexei Starovoitov <ast@xxxxxxxxxx>
> Cc: Jann Horn <jann@xxxxxxxxx>

Applied and queued up for -stable, thanks Daniel.