diff options
author | Dave Marchevsky <davemarchevsky@fb.com> | 2023-08-21 12:33:10 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-08-25 09:23:17 -0700 |
commit | 5861d1e8dbc4e1a03ebffb96ac041026cdd34c07 (patch) | |
tree | 6214656ece6a06c9977e23b4daa74ac3f0ace758 /crypto/ecdh_helper.c | |
parent | 0816b8c6bf7fc87cec4273dc199e8f0764b9e7b1 (diff) |
bpf: Allow bpf_spin_{lock,unlock} in sleepable progs
Commit 9e7a4d9831e8 ("bpf: Allow LSM programs to use bpf spin locks")
disabled bpf_spin_lock usage in sleepable progs, stating:
Sleepable LSM programs can be preempted which means that allowng spin
locks will need more work (disabling preemption and the verifier
ensuring that no sleepable helpers are called when a spin lock is
held).
This patch disables preemption before grabbing bpf_spin_lock. The second
requirement above "no sleepable helpers are called when a spin lock is
held" is implicitly enforced by current verifier logic due to helper
calls in spin_lock CS being disabled except for a few exceptions, none
of which sleep.
Due to above preemption changes, bpf_spin_lock CS can also be considered
a RCU CS, so verifier's in_rcu_cs check is modified to account for this.
Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com>
Link: https://lore.kernel.org/r/20230821193311.3290257-7-davemarchevsky@fb.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'crypto/ecdh_helper.c')
0 files changed, 0 insertions, 0 deletions