bpf: Use GFP_KERNEL in bpf_event_entry_gen()

rcu_read_lock() is no longer held when invoking bpf_event_entry_gen()
which is called by perf_event_fd_array_get_ptr(), so using GFP_KERNEL
instead of GFP_ATOMIC to reduce the possibility of failures due to
out-of-memory.

Acked-by: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20231214043010.3458072-3-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
Hou Tao 2023-12-14 12:30:10 +08:00 committed by Alexei Starovoitov
parent 8f82583f95
commit dc68540913

View File

@ -1195,7 +1195,7 @@ static struct bpf_event_entry *bpf_event_entry_gen(struct file *perf_file,
{ {
struct bpf_event_entry *ee; struct bpf_event_entry *ee;
ee = kzalloc(sizeof(*ee), GFP_ATOMIC); ee = kzalloc(sizeof(*ee), GFP_KERNEL);
if (ee) { if (ee) {
ee->event = perf_file->private_data; ee->event = perf_file->private_data;
ee->perf_file = perf_file; ee->perf_file = perf_file;