Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\bpf\verifier.c Create Date:2022-07-28 12:56:39
Last Modify:2022-05-19 20:02:10 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:mark_reg_unknown

Proto:static void mark_reg_unknown(struct bpf_verifier_env *env, struct bpf_reg_state *regs, u32 regno)

Type:void

Parameter:

TypeParameterName
struct bpf_verifier_env *env
struct bpf_reg_state *regs
u32regno
1077  If WARN_ON(regno >= BPF has 10 general purpose 64-bit registers and stack frame. ) Then
1078  verbose(env, "mark_reg_unknown(regs, %u)\n", regno)
1080  When regno < BPF_REG_FP cycle __mark_reg_not_init(env, regs + regno)
1082  Return
1084  Mark a register as having a completely unknown (scalar) value.
Caller
NameDescribe
check_reg_arg
check_stack_read
check_ptr_to_btf_access
check_mem_accessheck whether memory at (regno + off) is accessible for t = (read | write)* if t==write, value_regno is a register which value is stored into memory* if t==read, value_regno is a register which will receive the value from memory* if t==write &&
__clear_all_pkt_pointersPacket data might have moved, any old PTR_TO_PACKET[_META,_END]* are now invalid, so turn them into unknown SCALAR_VALUE.
release_reg_references
check_helper_call
adjust_scalar_min_max_valsWARNING: This function does calculations on 64-bit values, but the actual* execution may occur on 32-bit values. Therefore, things like bitshifts* need extra checks in the 32-bit case.
adjust_reg_min_max_valsHandles ALU ops other than BPF_END, BPF_NEG and BPF_MOV: computes new min/max* and var_off.
check_alu_opheck validity of 32-bit and 64-bit arithmetic operations
check_ld_absverify safety of LD_ABS|LD_IND instructions:* - they can only appear in the programs where ctx == skb* - since they are wrappers of function calls, they scratch R1-R5 registers,* preserve R6-R9, and store return value into R0* Implicit input:* ctx == skb