Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bpf: fix precision propagation verbose logging

Fix wrong order of frame index vs register/slot index in precision
propagation verbose (level 2) output. It's wrong and very confusing as is.

Fixes: 529409ea92d5 ("bpf: propagate precision across all frames, not just the last one")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20230313184017.4083374-1-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Andrii Nakryiko and committed by
Alexei Starovoitov
34f0677e 49b5300f

+2 -2
+2 -2
kernel/bpf/verifier.c
··· 15068 15068 !(state_reg->live & REG_LIVE_READ)) 15069 15069 continue; 15070 15070 if (env->log.level & BPF_LOG_LEVEL2) 15071 - verbose(env, "frame %d: propagating r%d\n", i, fr); 15071 + verbose(env, "frame %d: propagating r%d\n", fr, i); 15072 15072 err = mark_chain_precision_frame(env, fr, i); 15073 15073 if (err < 0) 15074 15074 return err; ··· 15084 15084 continue; 15085 15085 if (env->log.level & BPF_LOG_LEVEL2) 15086 15086 verbose(env, "frame %d: propagating fp%d\n", 15087 - (-i - 1) * BPF_REG_SIZE, fr); 15087 + fr, (-i - 1) * BPF_REG_SIZE); 15088 15088 err = mark_chain_precision_stack_frame(env, fr, i); 15089 15089 if (err < 0) 15090 15090 return err;