diff mbox series

[bpf-next] bpf: Fix bpf_prog_test_run_tracing for !CONFIG_NET

Message ID 20200305220127.29109-1-kpsingh@chromium.org (mailing list archive)
State New, archived
Headers show
Series [bpf-next] bpf: Fix bpf_prog_test_run_tracing for !CONFIG_NET | expand

Commit Message

KP Singh March 5, 2020, 10:01 p.m. UTC
From: KP Singh <kpsingh@google.com>

test_run.o is not built when CONFIG_NET is not set and
bpf_prog_test_run_tracing being referenced in bpf_trace.o causes the
linker error:

ld: kernel/trace/bpf_trace.o:(.rodata+0x38): undefined reference to
 `bpf_prog_test_run_tracing'

Add a __weak function in bpf_trace.c to handle this.

Fixes: da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING")
Signed-off-by: KP Singh <kpsingh@google.com>
---
 kernel/trace/bpf_trace.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Alexei Starovoitov March 5, 2020, 10:43 p.m. UTC | #1
On Thu, Mar 05, 2020 at 11:01:27PM +0100, KP Singh wrote:
> From: KP Singh <kpsingh@google.com>
> 
> test_run.o is not built when CONFIG_NET is not set and
> bpf_prog_test_run_tracing being referenced in bpf_trace.o causes the
> linker error:
> 
> ld: kernel/trace/bpf_trace.o:(.rodata+0x38): undefined reference to
>  `bpf_prog_test_run_tracing'
> 
> Add a __weak function in bpf_trace.c to handle this.
> 
> Fixes: da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING")
> Signed-off-by: KP Singh <kpsingh@google.com>

Applied. Thanks
Randy Dunlap March 5, 2020, 11:12 p.m. UTC | #2
On 3/5/20 2:01 PM, KP Singh wrote:
> From: KP Singh <kpsingh@google.com>
> 
> test_run.o is not built when CONFIG_NET is not set and
> bpf_prog_test_run_tracing being referenced in bpf_trace.o causes the
> linker error:
> 
> ld: kernel/trace/bpf_trace.o:(.rodata+0x38): undefined reference to
>  `bpf_prog_test_run_tracing'
> 
> Add a __weak function in bpf_trace.c to handle this.
> 
> Fixes: da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING")
> Signed-off-by: KP Singh <kpsingh@google.com>

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested

Thanks.

> ---
>  kernel/trace/bpf_trace.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
> index 363e0a2c75cf..6a490d8ce9de 100644
> --- a/kernel/trace/bpf_trace.c
> +++ b/kernel/trace/bpf_trace.c
> @@ -1252,6 +1252,13 @@ static bool tracing_prog_is_valid_access(int off, int size,
>  	return btf_ctx_access(off, size, type, prog, info);
>  }
>  
> +int __weak bpf_prog_test_run_tracing(struct bpf_prog *prog,
> +				     const union bpf_attr *kattr,
> +				     union bpf_attr __user *uattr)
> +{
> +	return -ENOTSUPP;
> +}
> +
>  const struct bpf_verifier_ops raw_tracepoint_verifier_ops = {
>  	.get_func_proto  = raw_tp_prog_func_proto,
>  	.is_valid_access = raw_tp_prog_is_valid_access,
>
Alexei Starovoitov March 5, 2020, 11:16 p.m. UTC | #3
On Thu, Mar 5, 2020 at 3:12 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>
> On 3/5/20 2:01 PM, KP Singh wrote:
> > From: KP Singh <kpsingh@google.com>
> >
> > test_run.o is not built when CONFIG_NET is not set and
> > bpf_prog_test_run_tracing being referenced in bpf_trace.o causes the
> > linker error:
> >
> > ld: kernel/trace/bpf_trace.o:(.rodata+0x38): undefined reference to
> >  `bpf_prog_test_run_tracing'
> >
> > Add a __weak function in bpf_trace.c to handle this.
> >
> > Fixes: da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING")
> > Signed-off-by: KP Singh <kpsingh@google.com>
>
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested

Since it was at the top of the tree I amended the commit
with your tags.
Thanks for reporting and testing.
KP Singh March 5, 2020, 11:22 p.m. UTC | #4
On Fri, Mar 6, 2020 at 12:16 AM Alexei Starovoitov
<alexei.starovoitov@gmail.com> wrote:
>
> On Thu, Mar 5, 2020 at 3:12 PM Randy Dunlap <rdunlap@infradead.org> wrote:
> >
> > On 3/5/20 2:01 PM, KP Singh wrote:
> > > From: KP Singh <kpsingh@google.com>
> > >
> > > test_run.o is not built when CONFIG_NET is not set and
> > > bpf_prog_test_run_tracing being referenced in bpf_trace.o causes the
> > > linker error:
> > >
> > > ld: kernel/trace/bpf_trace.o:(.rodata+0x38): undefined reference to
> > >  `bpf_prog_test_run_tracing'
> > >
> > > Add a __weak function in bpf_trace.c to handle this.
> > >
> > > Fixes: da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING")
> > > Signed-off-by: KP Singh <kpsingh@google.com>
> >
> > Reported-by: Randy Dunlap <rdunlap@infradead.org>

Thanks!

Apologies, I should have added the "Reported-by:" tag.

- KP

> > Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
>
> Since it was at the top of the tree I amended the commit
> with your tags.
> Thanks for reporting and testing.
diff mbox series

Patch

diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index 363e0a2c75cf..6a490d8ce9de 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -1252,6 +1252,13 @@  static bool tracing_prog_is_valid_access(int off, int size,
 	return btf_ctx_access(off, size, type, prog, info);
 }
 
+int __weak bpf_prog_test_run_tracing(struct bpf_prog *prog,
+				     const union bpf_attr *kattr,
+				     union bpf_attr __user *uattr)
+{
+	return -ENOTSUPP;
+}
+
 const struct bpf_verifier_ops raw_tracepoint_verifier_ops = {
 	.get_func_proto  = raw_tp_prog_func_proto,
 	.is_valid_access = raw_tp_prog_is_valid_access,