> Move the long branch address field to the bottom of the long
> branch stub. This allows uninterrupted disassembly until the
> last 8 bytes. The last bytes exclusion is logically necessary to
> prevent disassembly failure, otherwise the actual program layout
> is never altered. Hence no effect on overall program size.
> Also, align dummy_tramp_addr field with 8-byte boundary.
The commit message describes fixing a disassembly issue and updating
offset calculations for bpf_arch_text_poke(). The change modifies how
dummy_tramp_addr is positioned and how its offset is calculated.
Looking at the diff, the offset calculation in bpf_arch_text_poke()
changes from:
> - ret = patch_ulong((void *)(bpf_func_end -
> bpf_jit_long_branch_stub - SZL),
> + ret = patch_ulong((void *)(bpf_func_end - SZL), /* SZL:
> dummy_tramp_addr offset */
This corrects a calculation that was introduced when long branch stubs
were added. The original implementation placed dummy_tramp_addr at the
top of the stub and calculated its location using the stub size. This
commit moves it to the bottom and simplifies the calculation.
Should this include a Fixes tag for the commit that introduced the
original placement and offset calculation?
Fixes: d243b62b7bd3 ("powerpc64/bpf: Add support for bpf trampolines")
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/28051760380