OSDN Git Service

bpf: fix precision propagation verbose logging
authorAndrii Nakryiko <andrii@kernel.org>
Mon, 13 Mar 2023 18:40:17 +0000 (11:40 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 13 Mar 2023 18:46:44 +0000 (11:46 -0700)
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>
kernel/bpf/verifier.c

index 519d465..883d4ff 100644 (file)
@@ -15068,7 +15068,7 @@ static int propagate_precision(struct bpf_verifier_env *env,
                            !(state_reg->live & REG_LIVE_READ))
                                continue;
                        if (env->log.level & BPF_LOG_LEVEL2)
-                               verbose(env, "frame %d: propagating r%d\n", i, fr);
+                               verbose(env, "frame %d: propagating r%d\n", fr, i);
                        err = mark_chain_precision_frame(env, fr, i);
                        if (err < 0)
                                return err;
@@ -15084,7 +15084,7 @@ static int propagate_precision(struct bpf_verifier_env *env,
                                continue;
                        if (env->log.level & BPF_LOG_LEVEL2)
                                verbose(env, "frame %d: propagating fp%d\n",
-                                       (-i - 1) * BPF_REG_SIZE, fr);
+                                       fr, (-i - 1) * BPF_REG_SIZE);
                        err = mark_chain_precision_stack_frame(env, fr, i);
                        if (err < 0)
                                return err;