Commit 2d71a90f authored by Will Hawkins's avatar Will Hawkins Committed by Daniel Borkmann

bpf, docs: Correct source of offset for program-local call

The offset to use when calculating the target of a program-local call is
in the instruction's imm field, not its offset field.
Signed-off-by: default avatarWill Hawkins <hawkinsw@obs.cr>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarEduard Zingerman <eddyz87@gmail.com>
Acked-by: default avatarDavid Vernet <void@manifault.com>
Link: https://lore.kernel.org/bpf/20230826053258.1860167-1-hawkinsw@obs.cr
parent 5439cfa7
...@@ -373,7 +373,7 @@ BPF_JNE 0x5 any PC += offset if dst != src ...@@ -373,7 +373,7 @@ BPF_JNE 0x5 any PC += offset if dst != src
BPF_JSGT 0x6 any PC += offset if dst > src signed BPF_JSGT 0x6 any PC += offset if dst > src signed
BPF_JSGE 0x7 any PC += offset if dst >= src signed BPF_JSGE 0x7 any PC += offset if dst >= src signed
BPF_CALL 0x8 0x0 call helper function by address see `Helper functions`_ BPF_CALL 0x8 0x0 call helper function by address see `Helper functions`_
BPF_CALL 0x8 0x1 call PC += offset see `Program-local functions`_ BPF_CALL 0x8 0x1 call PC += imm see `Program-local functions`_
BPF_CALL 0x8 0x2 call helper function by BTF ID see `Helper functions`_ BPF_CALL 0x8 0x2 call helper function by BTF ID see `Helper functions`_
BPF_EXIT 0x9 0x0 return BPF_JMP only BPF_EXIT 0x9 0x0 return BPF_JMP only
BPF_JLT 0xa any PC += offset if dst < src unsigned BPF_JLT 0xa any PC += offset if dst < src unsigned
...@@ -424,8 +424,8 @@ Program-local functions ...@@ -424,8 +424,8 @@ Program-local functions
~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
Program-local functions are functions exposed by the same BPF program as the Program-local functions are functions exposed by the same BPF program as the
caller, and are referenced by offset from the call instruction, similar to caller, and are referenced by offset from the call instruction, similar to
``BPF_JA``. A ``BPF_EXIT`` within the program-local function will return to ``BPF_JA``. The offset is encoded in the imm field of the call instruction.
the caller. A ``BPF_EXIT`` within the program-local function will return to the caller.
Load and store instructions Load and store instructions
=========================== ===========================
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment