linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
@ 2022-05-09 20:36 Luis Chamberlain
  2022-05-11 15:58 ` Luis Chamberlain
  0 siblings, 1 reply; 8+ messages in thread
From: Luis Chamberlain @ 2022-05-09 20:36 UTC (permalink / raw)
  To: ast, daniel; +Cc: songliubraving, bpf, linux-kernel, llvm, mcgrof

The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
triggered 0-day to issue an email for what seems to have been an old
clang warning. So this issue should have existed before as well, from
what I can tell. The issue is that clang expects a forward declaration
for routines declared as weak while gcc does not.

This can be reproduced with 0-day's x86_64-randconfig-c007
https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config

And using:

COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
Compiler will be installed in /home/mcgrof/0day
make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
  DESCEND objtool
  CALL    scripts/atomic/check-atomics.sh
  CALL    scripts/checksyscalls.sh
  CC      kernel/bpf/syscall.o
kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
void __weak unpriv_ebpf_notify(int new_state)
            ^
kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak unpriv_ebpf_notify(int new_state)
^
static

Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---

Daniel,

Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
while ago into sysctl-next and then merged the patch in question,
should I just safely carry this patch onto sysctl-next? Let me know
how you'd like to proceed.

Also, it wasn't clear if putting this forward declaration on
bpf.h was your ideal preference.

  Luis

 include/linux/bpf.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index bdb5298735ce..bd3e17a9f821 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -1551,6 +1551,9 @@ bpf_map_alloc_percpu(const struct bpf_map *map, size_t size, size_t align,
 #endif
 
 extern int sysctl_unprivileged_bpf_disabled;
+#ifdef CONFIG_SYSCTL
+void unpriv_ebpf_notify(int new_state);
+#endif
 
 static inline bool bpf_allow_ptr_leaks(void)
 {
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-09 20:36 [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify() Luis Chamberlain
@ 2022-05-11 15:58 ` Luis Chamberlain
  2022-05-11 16:03   ` Alexei Starovoitov
  0 siblings, 1 reply; 8+ messages in thread
From: Luis Chamberlain @ 2022-05-11 15:58 UTC (permalink / raw)
  To: ast, daniel; +Cc: songliubraving, bpf, linux-kernel, llvm

On Mon, May 09, 2022 at 01:36:23PM -0700, Luis Chamberlain wrote:
> The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
> triggered 0-day to issue an email for what seems to have been an old
> clang warning. So this issue should have existed before as well, from
> what I can tell. The issue is that clang expects a forward declaration
> for routines declared as weak while gcc does not.
> 
> This can be reproduced with 0-day's x86_64-randconfig-c007
> https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config
> 
> And using:
> 
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> Compiler will be installed in /home/mcgrof/0day
> make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
>   DESCEND objtool
>   CALL    scripts/atomic/check-atomics.sh
>   CALL    scripts/checksyscalls.sh
>   CC      kernel/bpf/syscall.o
> kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
> void __weak unpriv_ebpf_notify(int new_state)
>             ^
> kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> void __weak unpriv_ebpf_notify(int new_state)
> ^
> static
> 
> Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> ---
> 
> Daniel,
> 
> Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
> kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
> while ago into sysctl-next and then merged the patch in question,
> should I just safely carry this patch onto sysctl-next? Let me know
> how you'd like to proceed.
> 
> Also, it wasn't clear if putting this forward declaration on
> bpf.h was your ideal preference.

After testing this on sysctl-testing without issues going to move this
to sysctl-next now.

  Luis

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-11 15:58 ` Luis Chamberlain
@ 2022-05-11 16:03   ` Alexei Starovoitov
  2022-05-11 16:08     ` Luis Chamberlain
  0 siblings, 1 reply; 8+ messages in thread
From: Alexei Starovoitov @ 2022-05-11 16:03 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: Alexei Starovoitov, Daniel Borkmann, Song Liu, bpf, LKML, llvm,
	Borislav Petkov

On Wed, May 11, 2022 at 8:58 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
>
> On Mon, May 09, 2022 at 01:36:23PM -0700, Luis Chamberlain wrote:
> > The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
> > triggered 0-day to issue an email for what seems to have been an old
> > clang warning. So this issue should have existed before as well, from
> > what I can tell. The issue is that clang expects a forward declaration
> > for routines declared as weak while gcc does not.
> >
> > This can be reproduced with 0-day's x86_64-randconfig-c007
> > https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config
> >
> > And using:
> >
> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> > Compiler will be installed in /home/mcgrof/0day
> > make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> >   DESCEND objtool
> >   CALL    scripts/atomic/check-atomics.sh
> >   CALL    scripts/checksyscalls.sh
> >   CC      kernel/bpf/syscall.o
> > kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
> > void __weak unpriv_ebpf_notify(int new_state)
> >             ^
> > kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> > void __weak unpriv_ebpf_notify(int new_state)
> > ^
> > static
> >
> > Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
> > Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> > ---
> >
> > Daniel,
> >
> > Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
> > kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
> > while ago into sysctl-next and then merged the patch in question,
> > should I just safely carry this patch onto sysctl-next? Let me know
> > how you'd like to proceed.
> >
> > Also, it wasn't clear if putting this forward declaration on
> > bpf.h was your ideal preference.
>
> After testing this on sysctl-testing without issues going to move this
> to sysctl-next now.

Hmm. No.
A similar patch should be in tip already. You have to wait
for it to go through Linus's tree and back to whatever tree you use.

Borislav,
did you ship it yet?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-11 16:03   ` Alexei Starovoitov
@ 2022-05-11 16:08     ` Luis Chamberlain
  2022-05-11 16:17       ` Daniel Borkmann
  0 siblings, 1 reply; 8+ messages in thread
From: Luis Chamberlain @ 2022-05-11 16:08 UTC (permalink / raw)
  To: Alexei Starovoitov
  Cc: Alexei Starovoitov, Daniel Borkmann, Song Liu, bpf, LKML, llvm,
	Borislav Petkov

On Wed, May 11, 2022 at 09:03:13AM -0700, Alexei Starovoitov wrote:
> On Wed, May 11, 2022 at 8:58 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
> >
> > On Mon, May 09, 2022 at 01:36:23PM -0700, Luis Chamberlain wrote:
> > > The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
> > > triggered 0-day to issue an email for what seems to have been an old
> > > clang warning. So this issue should have existed before as well, from
> > > what I can tell. The issue is that clang expects a forward declaration
> > > for routines declared as weak while gcc does not.
> > >
> > > This can be reproduced with 0-day's x86_64-randconfig-c007
> > > https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config
> > >
> > > And using:
> > >
> > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> > > Compiler will be installed in /home/mcgrof/0day
> > > make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> > >   DESCEND objtool
> > >   CALL    scripts/atomic/check-atomics.sh
> > >   CALL    scripts/checksyscalls.sh
> > >   CC      kernel/bpf/syscall.o
> > > kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
> > > void __weak unpriv_ebpf_notify(int new_state)
> > >             ^
> > > kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> > > void __weak unpriv_ebpf_notify(int new_state)
> > > ^
> > > static
> > >
> > > Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
> > > Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> > > ---
> > >
> > > Daniel,
> > >
> > > Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
> > > kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
> > > while ago into sysctl-next and then merged the patch in question,
> > > should I just safely carry this patch onto sysctl-next? Let me know
> > > how you'd like to proceed.
> > >
> > > Also, it wasn't clear if putting this forward declaration on
> > > bpf.h was your ideal preference.
> >
> > After testing this on sysctl-testing without issues going to move this
> > to sysctl-next now.
> 
> Hmm. No.
> A similar patch should be in tip already. You have to wait
> for it to go through Linus's tree and back to whatever tree you use.

I'm a bit confused, the patch in question which my patch fixes should only
be in my sysctl-next tree at this point, not in Linus's tree.

  Luis

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-11 16:08     ` Luis Chamberlain
@ 2022-05-11 16:17       ` Daniel Borkmann
  2022-05-11 16:24         ` Luis Chamberlain
  2022-05-11 16:45         ` Borislav Petkov
  0 siblings, 2 replies; 8+ messages in thread
From: Daniel Borkmann @ 2022-05-11 16:17 UTC (permalink / raw)
  To: Luis Chamberlain, Alexei Starovoitov
  Cc: Alexei Starovoitov, Song Liu, bpf, LKML, llvm, Borislav Petkov

On 5/11/22 6:08 PM, Luis Chamberlain wrote:
> On Wed, May 11, 2022 at 09:03:13AM -0700, Alexei Starovoitov wrote:
>> On Wed, May 11, 2022 at 8:58 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
>>> On Mon, May 09, 2022 at 01:36:23PM -0700, Luis Chamberlain wrote:
>>>> The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
>>>> triggered 0-day to issue an email for what seems to have been an old
>>>> clang warning. So this issue should have existed before as well, from
>>>> what I can tell. The issue is that clang expects a forward declaration
>>>> for routines declared as weak while gcc does not.
>>>>
>>>> This can be reproduced with 0-day's x86_64-randconfig-c007
>>>> https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config
>>>>
>>>> And using:
>>>>
>>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
>>>> Compiler will be installed in /home/mcgrof/0day
>>>> make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
>>>>    DESCEND objtool
>>>>    CALL    scripts/atomic/check-atomics.sh
>>>>    CALL    scripts/checksyscalls.sh
>>>>    CC      kernel/bpf/syscall.o
>>>> kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
>>>> void __weak unpriv_ebpf_notify(int new_state)
>>>>              ^
>>>> kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
>>>> void __weak unpriv_ebpf_notify(int new_state)
>>>> ^
>>>> static
>>>>
>>>> Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
>>>> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
>>>> ---
>>>>
>>>> Daniel,
>>>>
>>>> Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
>>>> kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
>>>> while ago into sysctl-next and then merged the patch in question,
>>>> should I just safely carry this patch onto sysctl-next? Let me know
>>>> how you'd like to proceed.
>>>>
>>>> Also, it wasn't clear if putting this forward declaration on
>>>> bpf.h was your ideal preference.
>>>
>>> After testing this on sysctl-testing without issues going to move this
>>> to sysctl-next now.
>>
>> Hmm. No.
>> A similar patch should be in tip already. You have to wait
>> for it to go through Linus's tree and back to whatever tree you use.
> 
> I'm a bit confused, the patch in question which my patch fixes should only
> be in my sysctl-next tree at this point, not in Linus's tree.

Borislav was planning to route it via tip tree, maybe confusion was that the
fix in the link below is from Josh:

https://lore.kernel.org/bpf/CAADnVQKjfQMG_zFf9F9P7m0UzqESs7XoRy=udqrDSodxa8yBpg@mail.gmail.com/

But I presume this is routed as fix to Linus, so should land in both sysctl
and bpf tree at some point after re-sync.

Thanks,
Daniel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-11 16:17       ` Daniel Borkmann
@ 2022-05-11 16:24         ` Luis Chamberlain
  2022-05-11 16:38           ` Daniel Borkmann
  2022-05-11 16:45         ` Borislav Petkov
  1 sibling, 1 reply; 8+ messages in thread
From: Luis Chamberlain @ 2022-05-11 16:24 UTC (permalink / raw)
  To: Daniel Borkmann
  Cc: Alexei Starovoitov, Alexei Starovoitov, Song Liu, bpf, LKML,
	llvm, Borislav Petkov

On Wed, May 11, 2022 at 06:17:26PM +0200, Daniel Borkmann wrote:
> On 5/11/22 6:08 PM, Luis Chamberlain wrote:
> > On Wed, May 11, 2022 at 09:03:13AM -0700, Alexei Starovoitov wrote:
> > > On Wed, May 11, 2022 at 8:58 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
> > > > On Mon, May 09, 2022 at 01:36:23PM -0700, Luis Chamberlain wrote:
> > > > > The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
> > > > > triggered 0-day to issue an email for what seems to have been an old
> > > > > clang warning. So this issue should have existed before as well, from
> > > > > what I can tell. The issue is that clang expects a forward declaration
> > > > > for routines declared as weak while gcc does not.
> > > > > 
> > > > > This can be reproduced with 0-day's x86_64-randconfig-c007
> > > > > https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config
> > > > > 
> > > > > And using:
> > > > > 
> > > > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> > > > > Compiler will be installed in /home/mcgrof/0day
> > > > > make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
> > > > >    DESCEND objtool
> > > > >    CALL    scripts/atomic/check-atomics.sh
> > > > >    CALL    scripts/checksyscalls.sh
> > > > >    CC      kernel/bpf/syscall.o
> > > > > kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
> > > > > void __weak unpriv_ebpf_notify(int new_state)
> > > > >              ^
> > > > > kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
> > > > > void __weak unpriv_ebpf_notify(int new_state)
> > > > > ^
> > > > > static
> > > > > 
> > > > > Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
> > > > > Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> > > > > ---
> > > > > 
> > > > > Daniel,
> > > > > 
> > > > > Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
> > > > > kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
> > > > > while ago into sysctl-next and then merged the patch in question,
> > > > > should I just safely carry this patch onto sysctl-next? Let me know
> > > > > how you'd like to proceed.
> > > > > 
> > > > > Also, it wasn't clear if putting this forward declaration on
> > > > > bpf.h was your ideal preference.
> > > > 
> > > > After testing this on sysctl-testing without issues going to move this
> > > > to sysctl-next now.
> > > 
> > > Hmm. No.
> > > A similar patch should be in tip already. You have to wait
> > > for it to go through Linus's tree and back to whatever tree you use.
> > 
> > I'm a bit confused, the patch in question which my patch fixes should only
> > be in my sysctl-next tree at this point, not in Linus's tree.
> 
> Borislav was planning to route it via tip tree, maybe confusion was that the
> fix in the link below is from Josh:
> 
> https://lore.kernel.org/bpf/CAADnVQKjfQMG_zFf9F9P7m0UzqESs7XoRy=udqrDSodxa8yBpg@mail.gmail.com/

Ah, Josh posted a fix for the same compile warning.

> But I presume this is routed as fix to Linus, so should land in both sysctl
> and bpf tree at some point after re-sync.

It may be the case indeed that the code in question was triggering a
compile warning without the patch I have merged which moves the BPF
sysctls ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core").

So I'll just drop my fix.

  Luis

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-11 16:24         ` Luis Chamberlain
@ 2022-05-11 16:38           ` Daniel Borkmann
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Borkmann @ 2022-05-11 16:38 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: Alexei Starovoitov, Alexei Starovoitov, Song Liu, bpf, LKML,
	llvm, Borislav Petkov

On 5/11/22 6:24 PM, Luis Chamberlain wrote:
> On Wed, May 11, 2022 at 06:17:26PM +0200, Daniel Borkmann wrote:
>> On 5/11/22 6:08 PM, Luis Chamberlain wrote:
>>> On Wed, May 11, 2022 at 09:03:13AM -0700, Alexei Starovoitov wrote:
>>>> On Wed, May 11, 2022 at 8:58 AM Luis Chamberlain <mcgrof@kernel.org> wrote:
>>>>> On Mon, May 09, 2022 at 01:36:23PM -0700, Luis Chamberlain wrote:
>>>>>> The recent commit "bpf: Move BPF sysctls from kernel/sysctl.c to BPF core"
>>>>>> triggered 0-day to issue an email for what seems to have been an old
>>>>>> clang warning. So this issue should have existed before as well, from
>>>>>> what I can tell. The issue is that clang expects a forward declaration
>>>>>> for routines declared as weak while gcc does not.
>>>>>>
>>>>>> This can be reproduced with 0-day's x86_64-randconfig-c007
>>>>>> https://download.01.org/0day-ci/archive/20220424/202204240008.JDntM9cU-lkp@intel.com/config
>>>>>>
>>>>>> And using:
>>>>>>
>>>>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
>>>>>> Compiler will be installed in /home/mcgrof/0day
>>>>>> make --keep-going HOSTCC=/home/mcgrof/0day/clang/bin/clang CC=/home/mcgrof/0day/clang/bin/clang LD=/home/mcgrof/0day/clang/bin/ld.lld HOSTLD=/home/mcgrof/0day/clang/bin/ld.lld AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump OBJSIZE=llvm-size READELF=llvm-readelf HOSTCXX=clang++ HOSTAR=llvm-ar CROSS_COMPILE=x86_64-linux-gnu- --jobs=24 W=1 ARCH=x86_64 SHELL=/bin/bash kernel/bpf/syscall.o
>>>>>>     DESCEND objtool
>>>>>>     CALL    scripts/atomic/check-atomics.sh
>>>>>>     CALL    scripts/checksyscalls.sh
>>>>>>     CC      kernel/bpf/syscall.o
>>>>>> kernel/bpf/syscall.c:4944:13: warning: no previous prototype for function 'unpriv_ebpf_notify' [-Wmissing-prototypes]
>>>>>> void __weak unpriv_ebpf_notify(int new_state)
>>>>>>               ^
>>>>>> kernel/bpf/syscall.c:4944:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
>>>>>> void __weak unpriv_ebpf_notify(int new_state)
>>>>>> ^
>>>>>> static
>>>>>>
>>>>>> Fixes: 2900005ea287 ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core")
>>>>>> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
>>>>>> ---
>>>>>>
>>>>>> Daniel,
>>>>>>
>>>>>> Given what we did fore 2900005ea287 ("bpf: Move BPF sysctls from
>>>>>> kernel/sysctl.c to BPF core") where I had pulled pr/bpf-sysctl a
>>>>>> while ago into sysctl-next and then merged the patch in question,
>>>>>> should I just safely carry this patch onto sysctl-next? Let me know
>>>>>> how you'd like to proceed.
>>>>>>
>>>>>> Also, it wasn't clear if putting this forward declaration on
>>>>>> bpf.h was your ideal preference.
>>>>>
>>>>> After testing this on sysctl-testing without issues going to move this
>>>>> to sysctl-next now.
>>>>
>>>> Hmm. No.
>>>> A similar patch should be in tip already. You have to wait
>>>> for it to go through Linus's tree and back to whatever tree you use.
>>>
>>> I'm a bit confused, the patch in question which my patch fixes should only
>>> be in my sysctl-next tree at this point, not in Linus's tree.
>>
>> Borislav was planning to route it via tip tree, maybe confusion was that the
>> fix in the link below is from Josh:
>>
>> https://lore.kernel.org/bpf/CAADnVQKjfQMG_zFf9F9P7m0UzqESs7XoRy=udqrDSodxa8yBpg@mail.gmail.com/
> 
> Ah, Josh posted a fix for the same compile warning.
> 
>> But I presume this is routed as fix to Linus, so should land in both sysctl
>> and bpf tree at some point after re-sync.
> 
> It may be the case indeed that the code in question was triggering a
> compile warning without the patch I have merged which moves the BPF
> sysctls ("bpf: Move BPF sysctls from kernel/sysctl.c to BPF core").

Yes, it was indeed independent of the move.

> So I'll just drop my fix.

Agree, that's the best way forward, thanks Luis!

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify()
  2022-05-11 16:17       ` Daniel Borkmann
  2022-05-11 16:24         ` Luis Chamberlain
@ 2022-05-11 16:45         ` Borislav Petkov
  1 sibling, 0 replies; 8+ messages in thread
From: Borislav Petkov @ 2022-05-11 16:45 UTC (permalink / raw)
  To: Daniel Borkmann
  Cc: Luis Chamberlain, Alexei Starovoitov, Alexei Starovoitov,
	Song Liu, bpf, LKML, llvm

On Wed, May 11, 2022 at 06:17:26PM +0200, Daniel Borkmann wrote:
> Borislav was planning to route it via tip tree, maybe confusion was that the
> fix in the link below is from Josh:
> 
> https://lore.kernel.org/bpf/CAADnVQKjfQMG_zFf9F9P7m0UzqESs7XoRy=udqrDSodxa8yBpg@mail.gmail.com/
> 
> But I presume this is routed as fix to Linus,

Yap: https://git.kernel.org/tip/2147c438fde135d6c145a96e373d9348e7076f7f

Will go to Linus in the next merge window.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-05-11 16:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-09 20:36 [PATCH] bpf.h: fix clang compiler warning with unpriv_ebpf_notify() Luis Chamberlain
2022-05-11 15:58 ` Luis Chamberlain
2022-05-11 16:03   ` Alexei Starovoitov
2022-05-11 16:08     ` Luis Chamberlain
2022-05-11 16:17       ` Daniel Borkmann
2022-05-11 16:24         ` Luis Chamberlain
2022-05-11 16:38           ` Daniel Borkmann
2022-05-11 16:45         ` Borislav Petkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).