aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/bpf/verifier.c
AgeCommit message (Expand)AuthorFilesLines
13 daysMerge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf...Jakub Kicinski1-70/+70
14 daysriscv, bpf: inline bpf_get_smp_processor_id()Puranjay Mohan1-0/+4
2024-05-06bpf/verifier: relax MUL range computation checkCupertino Miranda1-5/+1
2024-05-06bpf/verifier: improve XOR and OR range computationCupertino Miranda1-2/+2
2024-05-06bpf/verifier: refactor checks for range computationCupertino Miranda1-64/+45
2024-05-06bpf/verifier: replace calls to mark_reg_unknown.Cupertino Miranda1-5/+4
2024-05-02Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-2/+31
2024-04-30bpf: Add support for kprobe session cookieJiri Olsa1-0/+7
2024-04-29bpf: Fix verifier assumptions about socket->skAlexei Starovoitov1-5/+18
2024-04-29Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf...Jakub Kicinski1-102/+383
2024-04-26bpf: verifier: prevent userspace memory accessPuranjay Mohan1-0/+30
2024-04-24bpf: make common crypto API for TC/XDP programsVadim Fedorenko1-0/+1
2024-04-24bpf: Introduce bpf_preempt_[disable,enable] kfuncsKumar Kartikeya Dwivedi1-2/+69
2024-04-23bpf: wq: add bpf_wq_set_callback_implBenjamin Tissoires1-6/+54
2024-04-23bpf: add support for KF_ARG_PTR_TO_WORKQUEUEBenjamin Tissoires1-0/+65
2024-04-23bpf: verifier: bail out if the argument is not a mapBenjamin Tissoires1-0/+5
2024-04-23bpf: add support for bpf_wq user typeBenjamin Tissoires1-0/+9
2024-04-22bpf: Fix typos in commentsRafael Passos1-6/+6
2024-04-22bpf: Fix typo in function save_aux_ptr_typeRafael Passos1-3/+3
2024-04-16bpf: Harden and/or/xor value tracking in verifierHarishankar Vishwanathan1-54/+40
2024-04-12bpf: Fix a verifier verbose messageAnton Protopopov1-2/+1
2024-04-09bpf: Add support for certain atomics in bpf_arena to x86 JITAlexei Starovoitov1-1/+18
2024-04-05bpf: allow invoking bpf_for_each_map_elem with different mapsPhilo Lu1-5/+1
2024-04-05bpf: store both map ptr and state in bpf_insn_aux_dataPhilo Lu1-20/+16
2024-04-05bpf: fix perf_snapshot_branch_stack link failureArnd Bergmann1-1/+2
2024-04-04bpf: prevent r10 register from being marked as preciseAndrii Nakryiko1-2/+4
2024-04-04Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-0/+3
2024-04-04bpf: inline bpf_get_branch_snapshot() helperAndrii Nakryiko1-0/+55
2024-04-04bpf: Optimize emit_mov_imm64().Alexei Starovoitov1-3/+10
2024-04-03bpf: inline bpf_get_smp_processor_id() helperAndrii Nakryiko1-0/+24
2024-04-02bpf: Add a verbose message if map limit is reachedAnton Protopopov1-0/+2
2024-03-29bpf: fix possible file descriptor leaks in verifierAnton Protopopov1-0/+3
2024-03-28bpf: improve error message for unsupported helperMykyta Yatsenko1-2/+2
2024-03-28Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-3/+24
2024-03-27bpf: Protect against int overflow for stack access sizeAndrei Matei1-0/+5
2024-03-22bpf: verifier: reject addr_space_cast insn without arenaPuranjay Mohan1-0/+4
2024-03-22bpf: verifier: fix addr_space_cast from as(1) to as(0)Puranjay Mohan1-2/+6
2024-03-21bpf-next: Avoid goto in regs_refine_cond_op()Harishankar Vishwanathan1-9/+13
2024-03-14bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()Christophe Leroy1-2/+6
2024-03-14bpf: preserve sleepable bit in subprog infoAndrii Nakryiko1-0/+1
2024-03-14bpf: Temporarily disable atomic operations in BPF arenaPuranjay Mohan1-1/+9
2024-03-11Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf...Jakub Kicinski1-65/+301
2024-03-11bpf: move sleepable flag from bpf_prog_aux to bpf_progAndrii Nakryiko1-6/+6
2024-03-11bpf: Recognize btf_decl_tag("arg: Arena") as PTR_TO_ARENA.Alexei Starovoitov1-0/+15
2024-03-11bpf: Recognize addr_space_cast instruction in the verifier.Alexei Starovoitov1-9/+98
2024-03-11bpf: Introduce bpf_arena.Alexei Starovoitov1-0/+1
2024-03-07bpf: Recognize '__map' suffix in kfunc argumentsAlexei Starovoitov1-0/+16
2024-03-07bpf: Allow kfuncs return 'void *'Alexei Starovoitov1-0/+3
2024-03-07Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-0/+3
2024-03-06bpf: Recognize that two registers are safe when their ranges matchAlexei Starovoitov1-21/+30
2024-03-06bpf: Introduce may_goto instructionAlexei Starovoitov1-30/+133
2024-03-05bpf: check bpf_func_state->callback_depth when pruning statesEduard Zingerman1-0/+3
2024-03-02Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf...Jakub Kicinski1-71/+165
2024-02-22bpf: add is_async_callback_calling_insn() helperBenjamin Tissoires1-4/+7
2024-02-22bpf: introduce in_sleepable() helperBenjamin Tissoires1-6/+11
2024-02-22bpf: allow more maps in sleepable bpf programsBenjamin Tissoires1-0/+2
2024-02-22Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-0/+2
2024-02-15bpf: Fix test verif_scale_strobemeta_subprogs failure due to llvm19Yonghong Song1-5/+13
2024-02-13bpf: simplify btf_get_prog_ctx_type() into btf_is_prog_ctx_type()Andrii Nakryiko1-1/+1
2024-02-13bpf: Create argument information for nullable arguments.Kui-Feng Lee1-0/+6
2024-02-13bpf: Move __kfunc_param_match_suffix() to btf.c.Kui-Feng Lee1-28/+10
2024-02-13bpf: Fix warning for bpf_cpumask in verifierHari Bathini1-0/+2
2024-02-05bpf: Transfer RCU lock state between subprog callsKumar Kartikeya Dwivedi1-2/+1
2024-02-05bpf: Allow calling static subprogs while holding a bpf_spin_lockKumar Kartikeya Dwivedi1-3/+8
2024-02-02bpf: handle trusted PTR_TO_BTF_ID_OR_NULL in argument check logicAndrii Nakryiko1-0/+1
2024-02-02bpf: Handle scalar spill vs all MISC in stacksafe()Eduard Zingerman1-3/+69
2024-02-02bpf: Preserve boundaries and track scalars on narrowing fillMaxim Mikityanskiy1-4/+11
2024-02-02bpf: Track spilled unbounded scalarsMaxim Mikityanskiy1-15/+1
2024-01-30bpf: add __arg_trusted global func arg tagAndrii Nakryiko1-0/+24
2024-01-25bpf: Fix error checks against bpf_get_btf_vmlinux().Kui-Feng Lee1-1/+4
2024-01-24bpf: Consistently use BPF token throughout BPF verifier logicAndrii Nakryiko1-7/+6
2024-01-23bpf: hold module refcnt in bpf_struct_ops map creation and prog verification.Kui-Feng Lee1-0/+11
2024-01-23bpf: pass attached BTF to the bpf_struct_ops subsystemKui-Feng Lee1-3/+6
2024-01-23bpf: lookup struct_ops types from a given module BTF.Kui-Feng Lee1-1/+1
2024-01-23bpf, net: introduce bpf_struct_ops_desc.Kui-Feng Lee1-3/+5
2024-01-23bpf: Refactor ptr alu checking rules to allow alu explicitlyHao Sun1-7/+14
2024-01-23bpf: Track aligned st store as imprecise spilled registersYonghong Song1-2/+15
2024-01-23bpf: Assign ID to scalars on spillMaxim Mikityanskiy1-1/+7
2024-01-23bpf: Add the get_reg_width functionMaxim Mikityanskiy1-2/+7
2024-01-23bpf: Add the assign_scalar_id_before_mov functionMaxim Mikityanskiy1-14/+19
2024-01-23bpf: make infinite loop detection in is_state_visited() exactEduard Zingerman1-1/+1
2024-01-23bpf: prepare btf_prepare_func_args() for multiple tags per argumentAndrii Nakryiko1-1/+0
2024-01-23bpf: Support inlining bpf_kptr_xchg() helperHou Tao1-0/+17
2024-01-16bpf: Reject variable offset alu on PTR_TO_FLOW_KEYSHao Sun1-0/+4
2024-01-04bpf: Relax tracing prog recursive attach rulesDmitrii Dolgov1-14/+25
2024-01-03bpf: Limit up to 512 bytes for bpf_global_percpu_ma allocationYonghong Song1-0/+8
2024-01-03bpf: Allow per unit prefill for non-fix-size percpu memory allocatorYonghong Song1-14/+23
2024-01-03bpf: Simplify checking size of helper accessesAndrei Matei1-6/+4
2023-12-21bpf: Avoid unnecessary use of comma operator in verifierSimon Horman1-1/+1
2023-12-19bpf: add support for passing dynptr pointer to global subprogAndrii Nakryiko1-0/+7
2023-12-19bpf: support 'arg:xxx' btf_decl_tag-based hints for global subprog argsAndrii Nakryiko1-1/+4
2023-12-19bpf: reuse subprog argument parsing logic for subprog call checksAndrii Nakryiko1-80/+30
2023-12-19bpf: move subprog call logic back to verifier.cAndrii Nakryiko1-7/+146
2023-12-19bpf: prepare btf_prepare_func_args() for handling static subprogsAndrii Nakryiko1-5/+0
2023-12-19bpf: reuse btf_prepare_func_args() check for main program BTF validationAndrii Nakryiko1-13/+12
2023-12-19bpf: abstract away global subprog arg preparation logic from reg state setupAndrii Nakryiko1-16/+27
2023-12-19bpf: make the verifier tracks the "not equal" for regsMenglong Dong1-1/+37
2023-12-19Revert BPF token-related functionalityAndrii Nakryiko1-6/+7
2023-12-18bpf: Ensure precise is reset to false in __mark_reg_const_zero()Andrii Nakryiko1-18/+11
2023-12-12bpf: Comment on check_mem_size_regAndrei Matei1-0/+6
2023-12-12bpf: Remove unused backtrack_state helper functionsYang Li1-15/+0
2023-12-11bpf: tidy up exception callback management a bitAndrii Nakryiko1-13/+39
2023-12-09bpf: handle fake register spill to stack with BPF_ST_MEM instructionAndrii Nakryiko1-1/+0
2023-12-08bpf: Minor cleanup around stack boundsAndrei Matei1-2/+9
2023-12-08bpf: Fix accesses to uninit stack slotsAndrei Matei1-39/+26
2023-12-07bpf: Guard stack limits against 32bit overflowAndrei Matei1-3/+3
2023-12-07bpf: Fix verification of indirect var-off stack accessAndrei Matei1-10/+4
2023-12-06bpf: consistently use BPF token throughout BPF verifier logicAndrii Nakryiko1-7/+6
2023-12-05bpf: track aligned STACK_ZERO cases as imprecise spilled registersAndrii Nakryiko1-3/+7
2023-12-05bpf: preserve constant zero when doing partial register restoreAndrii Nakryiko1-4/+21
2023-12-05bpf: preserve STACK_ZERO slots on partial reg spillsAndrii Nakryiko1-5/+23
2023-12-05bpf: fix check for attempt to corrupt spilled pointerAndrii Nakryiko1-1/+1
2023-12-05bpf: support non-r10 register spill/fill to/from stack in precision trackingAndrii Nakryiko1-73/+102
2023-12-04bpf: Optimize the free of inner mapHou Tao1-1/+3
2023-12-04bpf: Minor logging improvementAndrei Matei1-2/+2
2023-12-02bpf: enforce precision of R0 on program/async callback returnAndrii Nakryiko1-0/+4
2023-12-02bpf: unify async callback and program retval checksAndrii Nakryiko1-18/+12
2023-12-02bpf: enforce precise retval range on program exitAndrii Nakryiko1-27/+29
2023-12-02bpf: enforce exact retval range on subprog/callback exitAndrii Nakryiko1-11/+22
2023-12-02bpf: enforce precision of R0 on callback returnAndrii Nakryiko1-0/+7
2023-12-02bpf: provide correct register name for exception callback retval checkAndrii Nakryiko1-6/+6
2023-11-24bpf: Validate global subprogs lazilyAndrii Nakryiko1-6/+42
2023-11-24bpf: Emit global subprog name in verifier logsAndrii Nakryiko1-11/+24
2023-11-23Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-136/+266
2023-11-21Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf...Jakub Kicinski1-1003/+673
2023-11-20bpf: keep track of max number of bpf_loop callback iterationsEduard Zingerman1-2/+17
2023-11-20bpf: widening for callback iteratorsEduard Zingerman1-2/+22
2023-11-20bpf: verify callbacks as if they are called unknown number of timesEduard Zingerman1-99/+175
2023-11-20bpf: extract setup_func_entry() utility functionEduard Zingerman1-36/+48
2023-11-20bpf: extract __check_reg_arg() utility functionEduard Zingerman1-6/+13
2023-11-18bpf: move verifier state printing code to kernel/bpf/log.cAndrii Nakryiko1-403/+0
2023-11-18bpf: move verbose_linfo() into kernel/bpf/log.cAndrii Nakryiko1-57/+0
2023-11-17bpf: rename BPF_F_TEST_SANITY_STRICT to BPF_F_TEST_REG_INVARIANTSAndrii Nakryiko1-3/+3
2023-11-15bpf: make __reg{32,64}_deduce_bounds logic more robustAndrii Nakryiko1-16/+8
2023-11-15bpf: remove redundant s{32,64} -> u{32,64} deduction logicAndrii Nakryiko1-36/+0
2023-11-15bpf: add register bounds sanity checks and sanitizationAndrii Nakryiko1-25/+92
2023-11-15bpf: enhance BPF_JEQ/BPF_JNE is_branch_taken logicAndrii Nakryiko1-0/+24
2023-11-15bpf: generalize is_scalar_branch_taken() logicAndrii Nakryiko1-40/+58
2023-11-15bpf: generalize reg_set_min_max() to handle non-const register comparisonsAndrii Nakryiko1-178/+136
2023-11-15bpf: Do not allocate percpu memory at init stageYonghong Song1-2/+18
2023-11-09bpf: fix control-flow graph checking in privileged modeAndrii Nakryiko1-15/+8
2023-11-09bpf: fix precision backtracking instruction iterationAndrii Nakryiko1-2/+19
2023-11-09bpf: handle ldimm64 properly in check_cfg()Andrii Nakryiko1-7/+20
2023-11-09bpf: Mark direct ld of stashed bpf_{rb,list}_node as non-owning refDave Marchevsky1-5/+31
2023-11-09bpf: replace register_is_const() with is_reg_const()Shung-Hsi Yu1-16/+11
2023-11-09bpf: Introduce KF_ARG_PTR_TO_CONST_STRSong Liu1-0/+19
2023-11-09bpf: Factor out helper check_reg_const_str()Song Liu1-36/+49
2023-11-09bpf: generalize reg_set_min_max() to handle two sets of two registersAndrii Nakryiko1-75/+56
2023-11-09bpf: prepare reg_set_min_max for second set of registersAndrii Nakryiko1-40/+40
2023-11-09bpf: unify 32-bit and 64-bit is_branch_taken logicAndrii Nakryiko1-141/+59
2023-11-09bpf: generalize is_branch_taken to handle all conditional jumps in one placeAndrii Nakryiko1-24/+25
2023-11-09bpf: move is_branch_taken() downAndrii Nakryiko1-42/+42
2023-11-09bpf: generalize is_branch_taken() to work with two registersAndrii Nakryiko1-25/+32
2023-11-09bpf: rename is_branch_taken reg arguments to prepare for the second oneAndrii Nakryiko1-54/+54
2023-11-09bpf: drop knowledge-losing __reg_combine_{32,64}_into_{64,32} logicAndrii Nakryiko1-52/+8
2023-11-09bpf: try harder to deduce register bounds from different numeric domainsAndrii Nakryiko1-0/+1
2023-11-09bpf: improve deduction of 64-bit bounds from 32-bit boundsAndrii Nakryiko1-0/+44
2023-11-09bpf: add special smin32/smax32 derivation from 64-bit boundsAndrii Nakryiko1-0/+23
2023-11-09bpf: derive subreg bounds from full bounds when upper 32 bits are constantAndrii Nakryiko1-0/+45
2023-11-09bpf: derive smin32/smax32 from umin32/umax32 boundsAndrii Nakryiko1-0/+7
2023-11-09bpf: derive smin/smax from umin/max boundsAndrii Nakryiko1-0/+71
2023-11-01bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_ENDShung-Hsi Yu1-1/+6
2023-11-01bpf: Relax allowlist for css_task iterChuyi Zhou1-4/+12
2023-11-01bpf: Fix check_stack_write_fixed_off() to correctly spill immHao Sun1-1/+1
2023-11-01bpf: fix compilation error without CGROUPSMatthieu Baerts1-0/+8
2023-10-24bpf: Improve JEQ/JNE branch taken logicAndrii Nakryiko1-0/+8
2023-10-23bpf: print full verifier states on infinite loop detectionEduard Zingerman1-0/+4
2023-10-23bpf: correct loop detection for iterators convergenceEduard Zingerman1-4/+203
2023-10-23bpf: exact states comparison for iterator convergence checksEduard Zingerman1-31/+187
2023-10-23bpf: extract same_callsites() as utility functionEduard Zingerman1-5/+15
2023-10-23bpf: move explored_state() closer to the beginning of verifier.cEduard Zingerman1-15/+13
2023-10-19bpf: Let bpf_iter_task_new accept null task ptrChuyi Zhou1-1/+12
2023-10-19bpf: teach the verifier to enforce css_iter and task_iter in RCU CSChuyi Zhou1-11/+39
2023-10-19bpf: Introduce css_task open-coded iterator kfuncsChuyi Zhou1-0/+23
2023-10-16Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf...Jakub Kicinski1-25/+56
2023-10-16bpf: Ensure proper register state printing for cond jumpsAndrii Nakryiko1-1/+6
2023-10-16bpf: Disambiguate SCALAR register state output in verifier logsAndrii Nakryiko1-22/+45
2023-10-12Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-3/+3
2023-10-11bpf: Implement cgroup sockaddr hooks for unix socketsDaan De Meyer1-1/+4
2023-10-09bpf: Fix verifier log for async callback return valuesDavid Vernet1-3/+3
2023-10-05Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-5/+3
2023-09-21bpf: Disable zero-extension for BPF_MEMSXIlya Leoshkevich1-1/+1
2023-09-20bpf: unconditionally reset backtrack_state masks on global func exitAndrii Nakryiko1-5/+3
2023-09-19bpf: Remove unused variables.Alexei Starovoitov1-5/+1
2023-09-16bpf: Fix kfunc callback register type handlingKumar Kartikeya Dwivedi1-0/+4
2023-09-16bpf: Disallow fentry/fexit/freplace for exception callbacksKumar Kartikeya Dwivedi1-0/+6
2023-09-16bpf: Treat first argument as return value for bpf_throwKumar Kartikeya Dwivedi1-13/+24
2023-09-16bpf: Perform CFG walk for exception callbackKumar Kartikeya Dwivedi1-2/+13
2023-09-16bpf: Add support for custom exception callbacksKumar Kartikeya Dwivedi1-8/+105
2023-09-16bpf: Refactor check_btf_func and split into two phasesKumar Kartikeya Dwivedi1-28/+100
2023-09-16bpf: Implement BPF exceptionsKumar Kartikeya Dwivedi1-14/+102
2023-09-16bpf: Implement support for adding hidden subprogsKumar Kartikeya Dwivedi1-3/+33
2023-09-12bpf, x64: Fix tailcall infinite loopLeon Hwang1-0/+3
2023-09-08bpf: Mark OBJ_RELEASE argument as MEM_RCU when possibleYonghong Song1-0/+20
2023-09-08bpf: Add bpf_this_cpu_ptr/bpf_per_cpu_ptr support for allocated percpu objYonghong Song1-8/+51
2023-09-08bpf: Add alloc/xchg/direct_access support for local percpu kptrYonghong Song1-22/+90
2023-08-25bpf: Allow bpf_spin_{lock,unlock} in sleepable progsDave Marchevsky1-6/+3
2023-08-25bpf: Consider non-owning refs to refcounted nodes RCU protectedDave Marchevsky1-1/+12
2023-08-25bpf: Reenable bpf_refcount_acquireDave Marchevsky1-4/+1
2023-08-25bpf: Ensure kptr_struct_meta is non-NULL for collection insert and refcount_a...Dave Marchevsky1-0/+14