[PATCH bpf-next 0/2] bpf, x86: Normalize IA32 kfunc return values

From: Yiyang Chen

Date: Thu Aug 13 2026 - 08:01:38 EST


The IA32 JIT stores BPF registers as pairs of 32-bit scratch words. Kfunc
returns narrower than 64 bits currently update only R0.low32, so full-width
uses can observe a stale R0.high32 value.

Patch 1 uses the BTF function model to sign- or zero-extend narrow returns
into EDX:EAX and stores both halves of R0.

Patch 2 adds IA32-specific test_loader support and unsigned bool and signed
int kfunc return regression tests.

Yiyang Chen (2):
bpf, x86: Normalize narrow kfunc returns on IA32
selftests/bpf: Cover IA32 narrow kfunc returns

Signed-off-by: Yiyang Chen <chenyy23@xxxxxxxxxxxxxxxxxxxxx>
---
Yiyang Chen (2):
bpf, x86: Normalize narrow kfunc returns on IA32
selftests/bpf: Cover IA32 narrow kfunc returns

arch/x86/net/bpf_jit_comp32.c | 53 +++++++++++---
tools/testing/selftests/bpf/prog_tests/verifier.c | 2 +
tools/testing/selftests/bpf/progs/bpf_misc.h | 1 +
.../selftests/bpf/progs/verifier_kfunc_return.c | 84 ++++++++++++++++++++++
tools/testing/selftests/bpf/test_loader.c | 13 ++--
5 files changed, 140 insertions(+), 13 deletions(-)
---
base-commit: 6f033615ef8fb2374daa7e50a8ff68616bc850d2
--
2.43.0