lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b45f82d0-8bc1-7050-a939-4f5791c6981e@fb.com>
Date:   Fri, 4 Jun 2021 08:52:30 -0700
From:   Yonghong Song <yhs@...com>
To:     kernel test robot <lkp@...el.com>
CC:     <kbuild-all@...ts.01.org>, <linux-kernel@...r.kernel.org>,
        Daniel Borkmann <daniel@...earbox.net>
Subject: Re: net/bpf/test_run.c:154:14: warning: no previous prototype for
 'bpf_fentry_test7'



On 6/4/21 12:50 AM, kernel test robot wrote:
> Hi Yonghong,
> 
> FYI, the error/warning still remains.
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   f88cd3fb9df228e5ce4e13ec3dbad671ddb2146e
> commit: d923021c2ce12acb50dc7086a1bf66eed82adf6a bpf: Add tests for PTR_TO_BTF_ID vs. null comparison
> date:   11 months ago
> config: x86_64-rhel (attached as .config)
> compiler: gcc-6 (Ubuntu 6.4.0-17ubuntu1) 6.4.0 20180424
> reproduce (this is a W=1 build):
>          # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d923021c2ce12acb50dc7086a1bf66eed82adf6a
>          git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>          git fetch --no-tags linus master
>          git checkout d923021c2ce12acb50dc7086a1bf66eed82adf6a
>          # save the attached .config to linux build tree
>          make W=1 ARCH=x86_64
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
> 
> All warnings (new ones prefixed by >>):
> 
>     net/bpf/test_run.c:120:14: warning: no previous prototype for 'bpf_fentry_test1' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test1(int a)
>                   ^~~~~~~~~~~~~~~~
>     net/bpf/test_run.c:125:14: warning: no previous prototype for 'bpf_fentry_test2' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test2(int a, u64 b)
>                   ^~~~~~~~~~~~~~~~
>     net/bpf/test_run.c:130:14: warning: no previous prototype for 'bpf_fentry_test3' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test3(char a, int b, u64 c)
>                   ^~~~~~~~~~~~~~~~
>     net/bpf/test_run.c:135:14: warning: no previous prototype for 'bpf_fentry_test4' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test4(void *a, char b, int c, u64 d)
>                   ^~~~~~~~~~~~~~~~
>     net/bpf/test_run.c:140:14: warning: no previous prototype for 'bpf_fentry_test5' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test5(u64 a, void *b, short c, int d, u64 e)
>                   ^~~~~~~~~~~~~~~~
>     net/bpf/test_run.c:145:14: warning: no previous prototype for 'bpf_fentry_test6' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f)
>                   ^~~~~~~~~~~~~~~~
>>> net/bpf/test_run.c:154:14: warning: no previous prototype for 'bpf_fentry_test7' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg)
>                   ^~~~~~~~~~~~~~~~
>>> net/bpf/test_run.c:159:14: warning: no previous prototype for 'bpf_fentry_test8' [-Wmissing-prototypes]
>      int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg)
>                   ^~~~~~~~~~~~~~~~
>     net/bpf/test_run.c:164:14: warning: no previous prototype for 'bpf_modify_return_test' [-Wmissing-prototypes]
>      int noinline bpf_modify_return_test(int a, int *b)
>                   ^~~~~~~~~~~~~~~~~~~~~~

I think this has been discussed earlier.

In net/bpf/test_run.c, we have,

__diag_push();
__diag_ignore(GCC, 8, "-Wmissing-prototypes",
               "Global functions as their definitions will be in vmlinux 
BTF");
int noinline bpf_fentry_test1(int a)
{
         return a + 1;
}
...

Unfortunately, the __diag_ignore macro only effective for gcc8 and later.

So for gcc6, the above warning will be emitted. Is it possible for the 
tool to check and ignore this error if the gcc version is less than 8?


> 
> vim +/bpf_fentry_test7 +154 net/bpf/test_run.c
> 
>     153	
>   > 154	int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg)
>     155	{
>     156		return (long)arg;
>     157	}
>     158	
>   > 159	int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg)
>     160	{
>     161		return (long)arg->a;
>     162	}
>     163	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ