From: Yonghong Song <y...@fb.com> Date: Mon, 18 Sep 2017 16:38:36 -0700
> This patch fixes a bug exhibited by the following scenario: > 1. fd1 = perf_event_open with attr.config = ID1 > 2. attach bpf program prog1 to fd1 > 3. fd2 = perf_event_open with attr.config = ID1 > <this will be successful> > 4. user program closes fd2 and prog1 is detached from the tracepoint. > 5. user program with fd1 does not work properly as tracepoint > no output any more. > > The issue happens at step 4. Multiple perf_event_open can be called > successfully, but only one bpf prog pointer in the tp_event. In the > current logic, any fd release for the same tp_event will free > the tp_event->prog. > > The fix is to free tp_event->prog only when the closing fd > corresponds to the one which registered the program. > > Signed-off-by: Yonghong Song <y...@fb.com> I've applied this and queued it up for -stable as it looks good to me and 2 days is enough time for waiting for any other reviews. Thanks.