bpf: reference may_access_skb() from __bpf_prog_run()
It took me quite some time to figure out how this was linked, so in order to save the next person the effort of finding it add a comment in __bpf_prog_run() that indicates what exactly determines that a program can access the ctx == skb. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
17c3060b17
commit
96a94cc515
@ -1162,12 +1162,12 @@ out:
|
|||||||
LD_ABS_W: /* BPF_R0 = ntohl(*(u32 *) (skb->data + imm32)) */
|
LD_ABS_W: /* BPF_R0 = ntohl(*(u32 *) (skb->data + imm32)) */
|
||||||
off = IMM;
|
off = IMM;
|
||||||
load_word:
|
load_word:
|
||||||
/* BPF_LD + BPD_ABS and BPF_LD + BPF_IND insns are
|
/* BPF_LD + BPD_ABS and BPF_LD + BPF_IND insns are only
|
||||||
* only appearing in the programs where ctx ==
|
* appearing in the programs where ctx == skb
|
||||||
* skb. All programs keep 'ctx' in regs[BPF_REG_CTX]
|
* (see may_access_skb() in the verifier). All programs
|
||||||
* == BPF_R6, bpf_convert_filter() saves it in BPF_R6,
|
* keep 'ctx' in regs[BPF_REG_CTX] == BPF_R6,
|
||||||
* internal BPF verifier will check that BPF_R6 ==
|
* bpf_convert_filter() saves it in BPF_R6, internal BPF
|
||||||
* ctx.
|
* verifier will check that BPF_R6 == ctx.
|
||||||
*
|
*
|
||||||
* BPF_ABS and BPF_IND are wrappers of function calls,
|
* BPF_ABS and BPF_IND are wrappers of function calls,
|
||||||
* so they scratch BPF_R1-BPF_R5 registers, preserve
|
* so they scratch BPF_R1-BPF_R5 registers, preserve
|
||||||
|
Loading…
x
Reference in New Issue
Block a user