From: Yonghong Song <yhs@fb.com>
To: <bpf@vger.kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>,
Andrii Nakryiko <andrii@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>, <kernel-team@fb.com>
Subject: [PATCH bpf v3 0/2] bpf: fix a couple of issues with syscall program
Date: Mon, 9 Aug 2021 16:51:41 -0700 [thread overview]
Message-ID: <20210809235141.1663247-1-yhs@fb.com> (raw)
syzbot ([1]) reported a rcu warning for syscall program when
bpf_get_current_cgroup_id() is called in the program. The
bpf_get_current_cgroup_id() helper expects cgroup related
mutex or rcu_read_lock(). The sleepable program cannot be
protected with rcu read_lock, hence the warning.
To fix the problem, Patch 1 added rcu_read_lock() in
affected helpers, and Patch 2 added missing
bpf_read_lock_trace() for syscall type of bpf programs.
[1] https://lore.kernel.org/bpf/0000000000006d5cab05c7d9bb87@google.com/
Changelog:
v2 -> v3:
- use rcu_read_lock() protection for
bpf_get_current_[ancestor_]cgroup_id() helper.
v1 -> v2:
- use bpf_read_lock_trace() instead of bpf_read_lock() for
bpf_prog_run_pin_on_cpu().
- disallow bpf_get_current_[ancestor_]cgroup_id() helper.
Yonghong Song (2):
bpf: add rcu read_lock in bpf_get_current_[ancestor_]cgroup_id()
helpers
bpf: add missing bpf_read_[un]lock_trace() for syscall program
kernel/bpf/helpers.c | 12 ++++++++++--
net/bpf/test_run.c | 4 ++++
2 files changed, 14 insertions(+), 2 deletions(-)
--
2.30.2
next reply other threads:[~2021-08-09 23:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-09 23:51 Yonghong Song [this message]
2021-08-09 23:51 ` [PATCH bpf v3 1/2] bpf: add rcu read_lock in bpf_get_current_[ancestor_]cgroup_id() helpers Yonghong Song
2021-08-10 0:25 ` Andrii Nakryiko
2021-08-10 8:08 ` Daniel Borkmann
2021-08-10 16:32 ` Paul E. McKenney
2021-08-10 16:36 ` Yonghong Song
2021-08-09 23:51 ` [PATCH bpf v3 2/2] bpf: add missing bpf_read_[un]lock_trace() for syscall program Yonghong Song
2021-08-10 8:14 ` Daniel Borkmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210809235141.1663247-1-yhs@fb.com \
--to=yhs@fb.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=kernel-team@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.