]> git.ipfire.org Git - thirdparty/linux.git/commit
Merge branch 'bpf-unify-special-map-field-validation-in-verifier'
authorAlexei Starovoitov <ast@kernel.org>
Sat, 31 Jan 2026 05:13:48 +0000 (21:13 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 31 Jan 2026 05:13:58 +0000 (21:13 -0800)
commitcda0cbfdeefe7690370595f72be277de0ad7b096
treefb8fc0792ab101f938d132a8dd890efa88f6787f
parentc7fbf8d9b808ff3774474be6313b79ea684c61a9
parentf4e72ad7c161d6ee1466b42ce0acc5c4eb6164dd
Merge branch 'bpf-unify-special-map-field-validation-in-verifier'

Mykyta Yatsenko says:

====================
The BPF verifier validates pointers to special map fields (timers,
workqueues, task_work) through separate functions that share nearly
identical logic. This creates code duplication because of the
inconsistent data structure layout in struct bpf_call_arg_meta struct
bpf_kfunc_call_arg_meta.

This series contains 2 commits:

1. Introduces struct bpf_map_desc to provide a unified representation
for map pointer and uid tracking. Previously, bpf_call_arg_meta used
separate map_ptr and map_uid fields while bpf_kfunc_call_arg_metaused an
anonymous inline struct. This inconsistency made it harder to share
validation code between the two paths.

2. Consolidates the validation logic for BPF_TIMER, BPF_WORKQUEUE, and
BPF_TASK_WORK field types into a single check_map_field_pointer()
function. This eliminates process_wq_func() and process_task_work_func()
entirely, and simplifies process_timer_func() to just the PREEMPT_RT
check before calling the unified validation. The result is fewer
lines of code with clearer structure for future maintenance.

Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Changes in v2:
- Added Signed-off-by to the top commit.
- Link to v1: https://lore.kernel.org/r/20260129-verif_special_fields-v1-0-d310b7f146c8@meta.com
====================

Link: https://patch.msgid.link/20260130-verif_special_fields-v2-0-2c59e637da7d@meta.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>