]> git.baikalelectronics.ru Git - kernel.git/commit
bpf, trace: use READ_ONCE for retrieving file ptr
authorDaniel Borkmann <daniel@iogearbox.net>
Sat, 4 Jun 2016 18:50:59 +0000 (20:50 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Jun 2016 21:48:03 +0000 (14:48 -0700)
commite1044ebc9ba5c3233da021d88eea9eefe9d0d4bd
treeeb0522bdbb70a44f7942f8636da2b36f54f50ac6
parentc99c80079de083ae0b6780a7313b360ac4005ca1
bpf, trace: use READ_ONCE for retrieving file ptr

In bpf_perf_event_read() and bpf_perf_event_output(), we must use
READ_ONCE() for fetching the struct file pointer, which could get
updated concurrently, so we must prevent the compiler from potential
refetching.

We already do this with tail calls for fetching the related bpf_prog,
but not so on stored perf events. Semantics for both are the same
with regards to updates.

Fixes: ef66a6db8bbe ("bpf: introduce bpf_perf_event_output() helper")
Fixes: 35dea35be167 ("bpf: Implement function bpf_perf_event_read() that get the selected hardware PMU conuter")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
kernel/trace/bpf_trace.c