All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Viktor Malik <vmalik@redhat.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Linux Memory Management List <linux-mm@kvack.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Luis Chamberlain <mcgrof@kernel.org>
Subject: [linux-next:master 3796/4036] kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
Date: Thu, 16 Mar 2023 14:59:48 +0800	[thread overview]
Message-ID: <202303161404.OrmfCy09-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   6f72958a49f68553f2b6ff713e8c8e51a34c1e1e
commit: 2a6427ca8f3a8f08498c7b60e486c95af88d0afd [3796/4036] bpf: Fix attaching fentry/fexit/fmod_ret/lsm to modules
config: riscv-randconfig-r042-20230313 (https://download.01.org/0day-ci/archive/20230316/202303161404.OrmfCy09-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=2a6427ca8f3a8f08498c7b60e486c95af88d0afd
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 2a6427ca8f3a8f08498c7b60e486c95af88d0afd
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash kernel/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303161404.OrmfCy09-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:391:13: note: expanded from macro 'list_for_each_entry_rcu'
                pos = list_entry_rcu((head)->next, typeof(*pos), member);  \
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:307:2: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:20:47: note: expanded from macro 'container_of'
           static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
   include/linux/compiler_types.h:340:74: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                            ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: offsetof of incomplete type 'typeof (*mod)' (aka 'struct module')
           list_for_each_entry_rcu(mod, &modules, list,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:391:13: note: expanded from macro 'list_for_each_entry_rcu'
                pos = list_entry_rcu((head)->next, typeof(*pos), member);  \
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:307:2: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:23:21: note: expanded from macro 'container_of'
           ((type *)(__mptr - offsetof(type, member))); })
                              ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/stddef.h:16:32: note: expanded from macro 'offsetof'
   #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
                                   ^                  ~~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: assigning to 'struct module *' from incompatible type 'void'
           list_for_each_entry_rcu(mod, &modules, list,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:391:11: note: expanded from macro 'list_for_each_entry_rcu'
                pos = list_entry_rcu((head)->next, typeof(*pos), member);  \
                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:392:7: note: expanded from macro 'list_for_each_entry_rcu'
                   &pos->member != (head);                                 \
                    ~~~^
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:387:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:379:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:387:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:379:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:387:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:379:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:387:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:379:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:387:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:379:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
           __READ_ONCE(x);                                                 \
                       ^
   include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE'
   #define __READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
                                                                    ^
   include/linux/compiler_types.h:355:13: note: expanded from macro '__unqual_scalar_typeof'
                   _Generic((x),                                           \
                             ^
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
           __READ_ONCE(x);                                                 \
                       ^
   include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE'
   #define __READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
                                                                    ^
   include/linux/compiler_types.h:362:15: note: expanded from macro '__unqual_scalar_typeof'
                            default: (x)))
                                      ^
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
           __READ_ONCE(x);                                                 \
                       ^
   include/asm-generic/rwonce.h:44:72: note: expanded from macro '__READ_ONCE'
   #define __READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
                                                                           ^
   include/linux/container_of.h:19:26: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                   ^~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: operand of type 'void' where arithmetic or pointer type is required
           list_for_each_entry_rcu(mod, &modules, list,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:393:9: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rculist.h:307:2: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:19:25: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                  ^~~~~
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:340:63: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                 ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                                    ^~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:340:63: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                 ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                                    ^~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:340:63: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                 ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                                    ^~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:340:63: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                 ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                                    ^~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
                                          ^
   note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:340:63: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                 ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                                    ^~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   In file included from kernel/bpf/verifier.c:27:
>> kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module'
           list_for_each_entry_rcu(mod, &modules, list,
           ^                       ~~~
   include/linux/rculist.h:393:27: note: expanded from macro 'list_for_each_entry_rcu'
                   pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
                                        ~~~^
   include/linux/rculist.h:307:25: note: expanded from macro 'list_entry_rcu'
           container_of(READ_ONCE(ptr), type, member)
                                  ^~~
   include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
           __READ_ONCE(x);                                                 \
                       ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:340:63: note: expanded from macro '__same_type'
   #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                                                                 ^
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                                    ^~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   include/linux/printk.h:348:8: note: forward declaration of 'struct module'
   struct module;
          ^
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.


vim +212 kernel/bpf/../module/internal.h

58d208de3e8d87 Aaron Tomlin     2022-03-22  204  
58d208de3e8d87 Aaron Tomlin     2022-03-22  205  static inline void mod_tree_insert(struct module *mod) { }
58d208de3e8d87 Aaron Tomlin     2022-03-22  206  static inline void mod_tree_remove_init(struct module *mod) { }
58d208de3e8d87 Aaron Tomlin     2022-03-22  207  static inline void mod_tree_remove(struct module *mod) { }
446d55666d5599 Christophe Leroy 2022-02-23  208  static inline struct module *mod_find(unsigned long addr, struct mod_tree_root *tree)
58d208de3e8d87 Aaron Tomlin     2022-03-22  209  {
58d208de3e8d87 Aaron Tomlin     2022-03-22  210  	struct module *mod;
58d208de3e8d87 Aaron Tomlin     2022-03-22  211  
58d208de3e8d87 Aaron Tomlin     2022-03-22 @212  	list_for_each_entry_rcu(mod, &modules, list,
58d208de3e8d87 Aaron Tomlin     2022-03-22  213  				lockdep_is_held(&module_mutex)) {
58d208de3e8d87 Aaron Tomlin     2022-03-22  214  		if (within_module(addr, mod))
58d208de3e8d87 Aaron Tomlin     2022-03-22  215  			return mod;
58d208de3e8d87 Aaron Tomlin     2022-03-22  216  	}
58d208de3e8d87 Aaron Tomlin     2022-03-22  217  
58d208de3e8d87 Aaron Tomlin     2022-03-22  218  	return NULL;
58d208de3e8d87 Aaron Tomlin     2022-03-22  219  }
58d208de3e8d87 Aaron Tomlin     2022-03-22  220  #endif /* CONFIG_MODULES_TREE_LOOKUP */
b33465fe9c52a3 Aaron Tomlin     2022-03-22  221  

:::::: The code at line 212 was first introduced by commit
:::::: 58d208de3e8d87dbe196caf0b57cc58c7a3836ca module: Move latched RB-tree support to a separate file

:::::: TO: Aaron Tomlin <atomlin@redhat.com>
:::::: CC: Luis Chamberlain <mcgrof@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

             reply	other threads:[~2023-03-16  7:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-16  6:59 kernel test robot [this message]
2023-03-16 15:14 ` [linux-next:master 3796/4036] kernel/bpf/../module/internal.h:212:2: error: incomplete definition of type 'struct module' Nathan Chancellor
2023-03-16 19:27   ` Viktor Malik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202303161404.OrmfCy09-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ast@kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=llvm@lists.linux.dev \
    --cc=mcgrof@kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=vmalik@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.