summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@kernel.org>2025-07-07 18:30:15 +0300
committerAlexei Starovoitov <ast@kernel.org>2025-07-07 18:30:15 +0300
commit0074250c35a4ad9b21ee91b78f62906d8b7942bf (patch)
tree71b436683192bd8c0a74369b0d8efa20ac661cb3
parent6e5cae9ddae7f14f5bffc34d12f45af756f86658 (diff)
parentbfa2bb9abd99beff078eaf9d9b59dbd4eb726040 (diff)
downloadlinux-0074250c35a4ad9b21ee91b78f62906d8b7942bf.tar.xz
Merge branch 'bpf-streams-fixes'
Kumar Kartikeya Dwivedi says: ==================== BPF Streams - Fixes This set contains some fixes for recently reported issues for BPF streams. Please check individual patches for details. ==================== Link: https://patch.msgid.link/20250705053035.3020320-1-memxor@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r--kernel/bpf/core.c4
-rw-r--r--kernel/bpf/stream.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index fe8a53f3c5bc..61613785bdd0 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -3244,6 +3244,7 @@ int bpf_prog_get_file_line(struct bpf_prog *prog, unsigned long ip, const char *
struct bpf_line_info *linfo;
void **jited_linfo;
struct btf *btf;
+ int nr_linfo;
btf = prog->aux->btf;
linfo = prog->aux->linfo;
@@ -3258,8 +3259,9 @@ int bpf_prog_get_file_line(struct bpf_prog *prog, unsigned long ip, const char *
insn_start = linfo[0].insn_off;
insn_end = insn_start + len;
+ nr_linfo = prog->aux->nr_linfo - prog->aux->linfo_idx;
- for (int i = 0; i < prog->aux->nr_linfo &&
+ for (int i = 0; i < nr_linfo &&
linfo[i].insn_off >= insn_start && linfo[i].insn_off < insn_end; i++) {
if (jited_linfo[i] >= (void *)ip)
break;
diff --git a/kernel/bpf/stream.c b/kernel/bpf/stream.c
index 8c842f845245..ab592db4a4bf 100644
--- a/kernel/bpf/stream.c
+++ b/kernel/bpf/stream.c
@@ -498,11 +498,11 @@ static bool dump_stack_cb(void *cookie, u64 ip, u64 sp, u64 bp)
if (ret < 0)
goto end;
ctxp->err = bpf_stream_stage_printk(ctxp->ss, "%pS\n %s @ %s:%d\n",
- (void *)ip, line, file, num);
+ (void *)(long)ip, line, file, num);
return !ctxp->err;
}
end:
- ctxp->err = bpf_stream_stage_printk(ctxp->ss, "%pS\n", (void *)ip);
+ ctxp->err = bpf_stream_stage_printk(ctxp->ss, "%pS\n", (void *)(long)ip);
return !ctxp->err;
}