diff options
author | Gilad Reti <gilad.reti@gmail.com> | 2021-01-13 07:38:07 +0200 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2021-01-13 19:47:43 -0800 |
commit | 744ea4e3885eccb6d332a06fae9eb7420a622c0f (patch) | |
tree | aaf2aacc822e6ac3257dfa2931aa9cf9ba6ace23 /kernel/bpf/verifier.c | |
parent | 7ac6ad051150592557520b45773201b987ecfce3 (diff) | |
download | lwn-744ea4e3885eccb6d332a06fae9eb7420a622c0f.tar.gz lwn-744ea4e3885eccb6d332a06fae9eb7420a622c0f.zip |
bpf: Support PTR_TO_MEM{,_OR_NULL} register spilling
Add support for pointer to mem register spilling, to allow the verifier
to track pointers to valid memory addresses. Such pointers are returned
for example by a successful call of the bpf_ringbuf_reserve helper.
The patch was partially contributed by CyberArk Software, Inc.
Fixes: 457f44363a88 ("bpf: Implement BPF ring buffer and verifier support for it")
Suggested-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Gilad Reti <gilad.reti@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: KP Singh <kpsingh@kernel.org>
Link: https://lore.kernel.org/bpf/20210113053810.13518-1-gilad.reti@gmail.com
Diffstat (limited to 'kernel/bpf/verifier.c')
-rw-r--r-- | kernel/bpf/verifier.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 17270b8404f1..36af69fac591 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -2217,6 +2217,8 @@ static bool is_spillable_regtype(enum bpf_reg_type type) case PTR_TO_RDWR_BUF: case PTR_TO_RDWR_BUF_OR_NULL: case PTR_TO_PERCPU_BTF_ID: + case PTR_TO_MEM: + case PTR_TO_MEM_OR_NULL: return true; default: return false; |