public inbox for netfilter-devel@vger.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: oe-kbuild-all@lists.linux.dev, netfilter-devel@vger.kernel.org,
	coreteam@netfilter.org, Florian Westphal <fw@strlen.de>
Subject: [netfilter-nf:testing 7/9] include/net/ip6_fib.h:663:33: error: invalid storage class for function 'fib6_rules_init'
Date: Sat, 21 Mar 2026 16:21:51 +0800	[thread overview]
Message-ID: <202603211611.4ulHj95G-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git testing
head:   b1bad43d8b00ab31c8f93145a4c8db1567f0d2fe
commit: 20d564bba6b3806c26498061299a88330561efa5 [7/9] netfilter: ctnetlink: ensure safe access to master conntrack
config: x86_64-randconfig-002-20260321 (https://download.01.org/0day-ci/archive/20260321/202603211611.4ulHj95G-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260321/202603211611.4ulHj95G-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603211611.4ulHj95G-lkp@intel.com/

All errors (new ones prefixed by >>):

   include/net/inet_ecn.h:222:19: error: invalid storage class for function 'INET_ECN_set_ect1'
     222 | static inline int INET_ECN_set_ect1(struct sk_buff *skb)
         |                   ^~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h: In function 'INET_ECN_set_ect1':
   include/net/inet_ecn.h:232:54: error: invalid application of 'sizeof' to incomplete type 'struct ipv6hdr'
     232 |                 if (skb_network_header(skb) + sizeof(struct ipv6hdr) <=
         |                                                      ^~~~~~
   include/net/inet_ecn.h:234:54: error: passing argument 2 of 'IP6_ECN_set_ect1' from incompatible pointer type [-Wincompatible-pointer-types]
     234 |                         return IP6_ECN_set_ect1(skb, ipv6_hdr(skb));
         |                                                      ^~~~~~~~~~~~~
         |                                                      |
         |                                                      struct ipv6hdr *
   include/net/inet_ecn.h:164:73: note: expected 'struct ipv6hdr *' but argument is of type 'struct ipv6hdr *'
     164 | static inline int IP6_ECN_set_ect1(struct sk_buff *skb, struct ipv6hdr *iph)
         |                                                         ~~~~~~~~~~~~~~~~^~~
   include/net/inet_ecn.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/inet_ecn.h:265:19: error: invalid storage class for function '__INET_ECN_decapsulate'
     265 | static inline int __INET_ECN_decapsulate(__u8 outer, __u8 inner, bool *set_ce)
         |                   ^~~~~~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h:283:19: error: invalid storage class for function 'INET_ECN_decapsulate'
     283 | static inline int INET_ECN_decapsulate(struct sk_buff *skb,
         |                   ^~~~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h:300:19: error: invalid storage class for function 'IP_ECN_decapsulate'
     300 | static inline int IP_ECN_decapsulate(const struct iphdr *oiph,
         |                   ^~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h:319:19: error: invalid storage class for function 'IP6_ECN_decapsulate'
     319 | static inline int IP6_ECN_decapsulate(const struct ipv6hdr *oipv6h,
         |                   ^~~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h: In function 'IP6_ECN_decapsulate':
   include/net/inet_ecn.h:335:59: error: passing argument 1 of 'ipv6_get_dsfield' from incompatible pointer type [-Wincompatible-pointer-types]
     335 |         return INET_ECN_decapsulate(skb, ipv6_get_dsfield(oipv6h), inner);
         |                                                           ^~~~~~
         |                                                           |
         |                                                           const struct ipv6hdr *
   include/net/dsfield.h:22:59: note: expected 'const struct ipv6hdr *' but argument is of type 'const struct ipv6hdr *'
      22 | static inline __u8 ipv6_get_dsfield(const struct ipv6hdr *ipv6h)
         |                                     ~~~~~~~~~~~~~~~~~~~~~~^~~~~
   In file included from include/net/dst_cache.h:8,
                    from include/net/ip_tunnels.h:21:
   include/net/ip6_fib.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/ip6_fib.h:91:20: error: invalid storage class for function 'fib6_routes_require_src'
      91 | static inline bool fib6_routes_require_src(const struct net *net)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:96:20: error: invalid storage class for function 'fib6_routes_require_src_inc'
      96 | static inline void fib6_routes_require_src_inc(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:97:20: error: invalid storage class for function 'fib6_routes_require_src_dec'
      97 | static inline void fib6_routes_require_src_dec(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:240:33: error: invalid storage class for function 'ip6_dst_idev'
     240 | static inline struct inet6_dev *ip6_dst_idev(const struct dst_entry *dst)
         |                                 ^~~~~~~~~~~~
   include/net/ip6_fib.h:245:20: error: invalid storage class for function 'fib6_requires_src'
     245 | static inline bool fib6_requires_src(const struct fib6_info *rt)
         |                    ^~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:253:20: error: invalid storage class for function 'fib6_clean_expires'
     253 | static inline void fib6_clean_expires(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:262:20: error: invalid storage class for function 'fib6_set_expires'
     262 | static inline void fib6_set_expires(struct fib6_info *f6i,
         |                    ^~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:269:20: error: invalid storage class for function 'fib6_check_expired'
     269 | static inline bool fib6_check_expired(const struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:281:20: error: invalid storage class for function 'fib6_get_cookie_safe'
     281 | static inline bool fib6_get_cookie_safe(const struct fib6_info *f6i,
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:299:19: error: invalid storage class for function 'rt6_get_cookie'
     299 | static inline u32 rt6_get_cookie(const struct rt6_info *rt)
         |                   ^~~~~~~~~~~~~~
   include/net/ip6_fib.h:318:20: error: invalid storage class for function 'ip6_rt_put'
     318 | static inline void ip6_rt_put(struct rt6_info *rt)
         |                    ^~~~~~~~~~
   include/net/ip6_fib.h:330:20: error: invalid storage class for function 'fib6_info_hold'
     330 | static inline void fib6_info_hold(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~
   include/net/ip6_fib.h:335:20: error: invalid storage class for function 'fib6_info_hold_safe'
     335 | static inline bool fib6_info_hold_safe(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:340:20: error: invalid storage class for function 'fib6_info_release'
     340 | static inline void fib6_info_release(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:474:6: error: invalid storage class for function 'rt6_get_prefsrc'
     474 | void rt6_get_prefsrc(const struct rt6_info *rt, struct in6_addr *addr)
         |      ^~~~~~~~~~~~~~~
   include/net/ip6_fib.h:520:20: error: invalid storage class for function 'fib6_add_gc_list'
     520 | static inline void fib6_add_gc_list(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:542:20: error: invalid storage class for function 'fib6_remove_gc_list'
     542 | static inline void fib6_remove_gc_list(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:576:20: error: invalid storage class for function 'fib6_metric_locked'
     576 | static inline bool fib6_metric_locked(struct fib6_info *f6i, int metric)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:610:32: error: invalid storage class for function 'pol_lookup_func'
     610 | static inline struct rt6_info *pol_lookup_func(pol_lookup_t lookup,
         |                                ^~~~~~~~~~~~~~~
   include/net/ip6_fib.h:659:20: error: invalid storage class for function 'fib6_has_custom_rules'
     659 | static inline bool fib6_has_custom_rules(const struct net *net)
         |                    ^~~~~~~~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:663:33: error: invalid storage class for function 'fib6_rules_init'
     663 | static inline int               fib6_rules_init(void)
         |                                 ^~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:667:33: error: invalid storage class for function 'fib6_rules_cleanup'
     667 | static inline void              fib6_rules_cleanup(void)
         |                                 ^~~~~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:671:20: error: invalid storage class for function 'fib6_rule_default'
     671 | static inline bool fib6_rule_default(const struct fib_rule *rule)
         |                    ^~~~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:675:19: error: invalid storage class for function 'fib6_rules_dump'
     675 | static inline int fib6_rules_dump(struct net *net, struct notifier_block *nb,
         |                   ^~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:680:28: error: invalid storage class for function 'fib6_rules_seq_read'
     680 | static inline unsigned int fib6_rules_seq_read(const struct net *net)
         |                            ^~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:684:20: error: invalid storage class for function 'fib6_rules_early_flow_dissect'
     684 | static inline bool fib6_rules_early_flow_dissect(struct net *net,
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/dst_cache.h:77:20: error: invalid storage class for function 'dst_cache_reset'
      77 | static inline void dst_cache_reset(struct dst_cache *dst_cache)
         |                    ^~~~~~~~~~~~~~~
   In file included from include/net/ip_tunnels.h:22:
   include/net/netdev_lock.h:10:20: error: invalid storage class for function 'netdev_trylock'
      10 | static inline bool netdev_trylock(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~
   include/net/netdev_lock.h:15:20: error: invalid storage class for function 'netdev_assert_locked'
      15 | static inline void netdev_assert_locked(const struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:21:1: error: invalid storage class for function 'netdev_assert_locked_or_invisible'
      21 | netdev_assert_locked_or_invisible(const struct net_device *dev)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:28:20: error: invalid storage class for function 'netdev_need_ops_lock'
      28 | static inline bool netdev_need_ops_lock(const struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:39:20: error: invalid storage class for function 'netdev_lock_ops'
      39 | static inline void netdev_lock_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~
   include/net/netdev_lock.h:45:20: error: invalid storage class for function 'netdev_unlock_ops'
      45 | static inline void netdev_unlock_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:51:20: error: invalid storage class for function 'netdev_lock_ops_to_full'
      51 | static inline void netdev_lock_ops_to_full(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:59:20: error: invalid storage class for function 'netdev_unlock_full_to_ops'
      59 | static inline void netdev_unlock_full_to_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:67:20: error: invalid storage class for function 'netdev_ops_assert_locked'
      67 | static inline void netdev_ops_assert_locked(const struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:76:1: error: invalid storage class for function 'netdev_ops_assert_locked_or_invisible'
      76 | netdev_ops_assert_locked_or_invisible(const struct net_device *dev)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:83:20: error: invalid storage class for function 'netdev_lock_ops_compat'
      83 | static inline void netdev_lock_ops_compat(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:91:20: error: invalid storage class for function 'netdev_unlock_ops_compat'
      91 | static inline void netdev_unlock_ops_compat(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:99:19: error: invalid storage class for function 'netdev_lock_cmp_fn'
      99 | static inline int netdev_lock_cmp_fn(const struct lockdep_map *a,
         |                   ^~~~~~~~~~~~~~~~~~
   In file included from include/net/ip6_route.h:13,
                    from include/net/ip_tunnels.h:27:
   include/net/nexthop.h:264:20: error: invalid storage class for function 'nexthop_get'
     264 | static inline bool nexthop_get(struct nexthop *nh)
         |                    ^~~~~~~~~~~
   include/net/nexthop.h:269:20: error: invalid storage class for function 'nexthop_put'
     269 | static inline void nexthop_put(struct nexthop *nh)
         |                    ^~~~~~~~~~~
   include/net/nexthop.h:275:20: error: invalid storage class for function 'nexthop_cmp'
     275 | static inline bool nexthop_cmp(const struct nexthop *nh1,
         |                    ^~~~~~~~~~~
   include/net/nexthop.h:281:20: error: invalid storage class for function 'nexthop_is_fdb'
     281 | static inline bool nexthop_is_fdb(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~
   include/net/nexthop.h:296:20: error: invalid storage class for function 'nexthop_has_v4'
     296 | static inline bool nexthop_has_v4(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~
   include/net/nexthop.h:307:20: error: invalid storage class for function 'nexthop_is_multipath'
     307 | static inline bool nexthop_is_multipath(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:320:28: error: invalid storage class for function 'nexthop_num_path'
     320 | static inline unsigned int nexthop_num_path(const struct nexthop *nh)
         |                            ^~~~~~~~~~~~~~~~
   include/net/nexthop.h:336:17: error: invalid storage class for function 'nexthop_mpath_select'
     336 | struct nexthop *nexthop_mpath_select(const struct nh_group *nhg, int nhsel)
         |                 ^~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:348:5: error: invalid storage class for function 'nexthop_mpath_fill_node'
     348 | int nexthop_mpath_fill_node(struct sk_buff *skb, struct nexthop *nh,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:368:20: error: invalid storage class for function 'nexthop_is_blackhole'
     368 | static inline bool nexthop_is_blackhole(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:386:20: error: invalid storage class for function 'nexthop_path_fib_result'
     386 | static inline void nexthop_path_fib_result(struct fib_result *res, int hash)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h: In function 'nexthop_path_fib_result':
   include/net/nexthop.h:391:41: error: passing argument 1 of 'nexthop_select_path' from incompatible pointer type [-Wincompatible-pointer-types]
     391 |         nh = nexthop_select_path(res->fi->nh, hash);
         |                                  ~~~~~~~^~~~
         |                                         |
         |                                         struct nexthop *
   include/net/nexthop.h:318:53: note: expected 'struct nexthop *' but argument is of type 'struct nexthop *'
     318 | struct nexthop *nexthop_select_path(struct nexthop *nh, int hash);
         |                                     ~~~~~~~~~~~~~~~~^~
   include/net/nexthop.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/nexthop.h:398:23: error: invalid storage class for function 'nexthop_fib_nhc'
     398 | struct fib_nh_common *nexthop_fib_nhc(struct nexthop *nh, int nhsel)
         |                       ^~~~~~~~~~~~~~~
   include/net/nexthop.h:422:23: error: invalid storage class for function 'nexthop_get_nhc_lookup'
     422 | struct fib_nh_common *nexthop_get_nhc_lookup(const struct nexthop *nh,
         |                       ^~~~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:453:20: error: invalid storage class for function 'nexthop_uses_dev'
--
   include/net/inet_ecn.h:222:19: error: invalid storage class for function 'INET_ECN_set_ect1'
     222 | static inline int INET_ECN_set_ect1(struct sk_buff *skb)
         |                   ^~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h: In function 'INET_ECN_set_ect1':
   include/net/inet_ecn.h:232:54: error: invalid application of 'sizeof' to incomplete type 'struct ipv6hdr'
     232 |                 if (skb_network_header(skb) + sizeof(struct ipv6hdr) <=
         |                                                      ^~~~~~
   include/net/inet_ecn.h:234:54: error: passing argument 2 of 'IP6_ECN_set_ect1' from incompatible pointer type [-Wincompatible-pointer-types]
     234 |                         return IP6_ECN_set_ect1(skb, ipv6_hdr(skb));
         |                                                      ^~~~~~~~~~~~~
         |                                                      |
         |                                                      struct ipv6hdr *
   include/net/inet_ecn.h:164:73: note: expected 'struct ipv6hdr *' but argument is of type 'struct ipv6hdr *'
     164 | static inline int IP6_ECN_set_ect1(struct sk_buff *skb, struct ipv6hdr *iph)
         |                                                         ~~~~~~~~~~~~~~~~^~~
   include/net/inet_ecn.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/inet_ecn.h:265:19: error: invalid storage class for function '__INET_ECN_decapsulate'
     265 | static inline int __INET_ECN_decapsulate(__u8 outer, __u8 inner, bool *set_ce)
         |                   ^~~~~~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h:283:19: error: invalid storage class for function 'INET_ECN_decapsulate'
     283 | static inline int INET_ECN_decapsulate(struct sk_buff *skb,
         |                   ^~~~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h:300:19: error: invalid storage class for function 'IP_ECN_decapsulate'
     300 | static inline int IP_ECN_decapsulate(const struct iphdr *oiph,
         |                   ^~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h:319:19: error: invalid storage class for function 'IP6_ECN_decapsulate'
     319 | static inline int IP6_ECN_decapsulate(const struct ipv6hdr *oipv6h,
         |                   ^~~~~~~~~~~~~~~~~~~
   include/net/inet_ecn.h: In function 'IP6_ECN_decapsulate':
   include/net/inet_ecn.h:335:59: error: passing argument 1 of 'ipv6_get_dsfield' from incompatible pointer type [-Wincompatible-pointer-types]
     335 |         return INET_ECN_decapsulate(skb, ipv6_get_dsfield(oipv6h), inner);
         |                                                           ^~~~~~
         |                                                           |
         |                                                           const struct ipv6hdr *
   include/net/dsfield.h:22:59: note: expected 'const struct ipv6hdr *' but argument is of type 'const struct ipv6hdr *'
      22 | static inline __u8 ipv6_get_dsfield(const struct ipv6hdr *ipv6h)
         |                                     ~~~~~~~~~~~~~~~~~~~~~~^~~~~
   In file included from include/net/dst_cache.h:8,
                    from include/net/ip_tunnels.h:21:
   include/net/ip6_fib.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/ip6_fib.h:91:20: error: invalid storage class for function 'fib6_routes_require_src'
      91 | static inline bool fib6_routes_require_src(const struct net *net)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:96:20: error: invalid storage class for function 'fib6_routes_require_src_inc'
      96 | static inline void fib6_routes_require_src_inc(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:97:20: error: invalid storage class for function 'fib6_routes_require_src_dec'
      97 | static inline void fib6_routes_require_src_dec(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:240:33: error: invalid storage class for function 'ip6_dst_idev'
     240 | static inline struct inet6_dev *ip6_dst_idev(const struct dst_entry *dst)
         |                                 ^~~~~~~~~~~~
   include/net/ip6_fib.h:245:20: error: invalid storage class for function 'fib6_requires_src'
     245 | static inline bool fib6_requires_src(const struct fib6_info *rt)
         |                    ^~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:253:20: error: invalid storage class for function 'fib6_clean_expires'
     253 | static inline void fib6_clean_expires(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:262:20: error: invalid storage class for function 'fib6_set_expires'
     262 | static inline void fib6_set_expires(struct fib6_info *f6i,
         |                    ^~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:269:20: error: invalid storage class for function 'fib6_check_expired'
     269 | static inline bool fib6_check_expired(const struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:281:20: error: invalid storage class for function 'fib6_get_cookie_safe'
     281 | static inline bool fib6_get_cookie_safe(const struct fib6_info *f6i,
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:299:19: error: invalid storage class for function 'rt6_get_cookie'
     299 | static inline u32 rt6_get_cookie(const struct rt6_info *rt)
         |                   ^~~~~~~~~~~~~~
   include/net/ip6_fib.h:318:20: error: invalid storage class for function 'ip6_rt_put'
     318 | static inline void ip6_rt_put(struct rt6_info *rt)
         |                    ^~~~~~~~~~
   include/net/ip6_fib.h:330:20: error: invalid storage class for function 'fib6_info_hold'
     330 | static inline void fib6_info_hold(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~
   include/net/ip6_fib.h:335:20: error: invalid storage class for function 'fib6_info_hold_safe'
     335 | static inline bool fib6_info_hold_safe(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:340:20: error: invalid storage class for function 'fib6_info_release'
     340 | static inline void fib6_info_release(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:474:6: error: invalid storage class for function 'rt6_get_prefsrc'
     474 | void rt6_get_prefsrc(const struct rt6_info *rt, struct in6_addr *addr)
         |      ^~~~~~~~~~~~~~~
   include/net/ip6_fib.h:520:20: error: invalid storage class for function 'fib6_add_gc_list'
     520 | static inline void fib6_add_gc_list(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:542:20: error: invalid storage class for function 'fib6_remove_gc_list'
     542 | static inline void fib6_remove_gc_list(struct fib6_info *f6i)
         |                    ^~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:576:20: error: invalid storage class for function 'fib6_metric_locked'
     576 | static inline bool fib6_metric_locked(struct fib6_info *f6i, int metric)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:610:32: error: invalid storage class for function 'pol_lookup_func'
     610 | static inline struct rt6_info *pol_lookup_func(pol_lookup_t lookup,
         |                                ^~~~~~~~~~~~~~~
   include/net/ip6_fib.h:659:20: error: invalid storage class for function 'fib6_has_custom_rules'
     659 | static inline bool fib6_has_custom_rules(const struct net *net)
         |                    ^~~~~~~~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:663:33: error: invalid storage class for function 'fib6_rules_init'
     663 | static inline int               fib6_rules_init(void)
         |                                 ^~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:667:33: error: invalid storage class for function 'fib6_rules_cleanup'
     667 | static inline void              fib6_rules_cleanup(void)
         |                                 ^~~~~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:671:20: error: invalid storage class for function 'fib6_rule_default'
     671 | static inline bool fib6_rule_default(const struct fib_rule *rule)
         |                    ^~~~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:675:19: error: invalid storage class for function 'fib6_rules_dump'
     675 | static inline int fib6_rules_dump(struct net *net, struct notifier_block *nb,
         |                   ^~~~~~~~~~~~~~~
>> include/net/ip6_fib.h:680:28: error: invalid storage class for function 'fib6_rules_seq_read'
     680 | static inline unsigned int fib6_rules_seq_read(const struct net *net)
         |                            ^~~~~~~~~~~~~~~~~~~
   include/net/ip6_fib.h:684:20: error: invalid storage class for function 'fib6_rules_early_flow_dissect'
     684 | static inline bool fib6_rules_early_flow_dissect(struct net *net,
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/dst_cache.h:77:20: error: invalid storage class for function 'dst_cache_reset'
      77 | static inline void dst_cache_reset(struct dst_cache *dst_cache)
         |                    ^~~~~~~~~~~~~~~
   In file included from include/net/ip_tunnels.h:22:
   include/net/netdev_lock.h:10:20: error: invalid storage class for function 'netdev_trylock'
      10 | static inline bool netdev_trylock(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~
   include/net/netdev_lock.h:15:20: error: invalid storage class for function 'netdev_assert_locked'
      15 | static inline void netdev_assert_locked(const struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:21:1: error: invalid storage class for function 'netdev_assert_locked_or_invisible'
      21 | netdev_assert_locked_or_invisible(const struct net_device *dev)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:28:20: error: invalid storage class for function 'netdev_need_ops_lock'
      28 | static inline bool netdev_need_ops_lock(const struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:39:20: error: invalid storage class for function 'netdev_lock_ops'
      39 | static inline void netdev_lock_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~
   include/net/netdev_lock.h:45:20: error: invalid storage class for function 'netdev_unlock_ops'
      45 | static inline void netdev_unlock_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:51:20: error: invalid storage class for function 'netdev_lock_ops_to_full'
      51 | static inline void netdev_lock_ops_to_full(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:59:20: error: invalid storage class for function 'netdev_unlock_full_to_ops'
      59 | static inline void netdev_unlock_full_to_ops(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:67:20: error: invalid storage class for function 'netdev_ops_assert_locked'
      67 | static inline void netdev_ops_assert_locked(const struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:76:1: error: invalid storage class for function 'netdev_ops_assert_locked_or_invisible'
      76 | netdev_ops_assert_locked_or_invisible(const struct net_device *dev)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:83:20: error: invalid storage class for function 'netdev_lock_ops_compat'
      83 | static inline void netdev_lock_ops_compat(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:91:20: error: invalid storage class for function 'netdev_unlock_ops_compat'
      91 | static inline void netdev_unlock_ops_compat(struct net_device *dev)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~
   include/net/netdev_lock.h:99:19: error: invalid storage class for function 'netdev_lock_cmp_fn'
      99 | static inline int netdev_lock_cmp_fn(const struct lockdep_map *a,
         |                   ^~~~~~~~~~~~~~~~~~
   In file included from include/net/ip6_route.h:13,
                    from include/net/ip_tunnels.h:27:
   include/net/nexthop.h:264:20: error: invalid storage class for function 'nexthop_get'
     264 | static inline bool nexthop_get(struct nexthop *nh)
         |                    ^~~~~~~~~~~
   include/net/nexthop.h:269:20: error: invalid storage class for function 'nexthop_put'
     269 | static inline void nexthop_put(struct nexthop *nh)
         |                    ^~~~~~~~~~~
   include/net/nexthop.h:275:20: error: invalid storage class for function 'nexthop_cmp'
     275 | static inline bool nexthop_cmp(const struct nexthop *nh1,
         |                    ^~~~~~~~~~~
   include/net/nexthop.h:281:20: error: invalid storage class for function 'nexthop_is_fdb'
     281 | static inline bool nexthop_is_fdb(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~
   include/net/nexthop.h:296:20: error: invalid storage class for function 'nexthop_has_v4'
     296 | static inline bool nexthop_has_v4(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~
   include/net/nexthop.h:307:20: error: invalid storage class for function 'nexthop_is_multipath'
     307 | static inline bool nexthop_is_multipath(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:320:28: error: invalid storage class for function 'nexthop_num_path'
     320 | static inline unsigned int nexthop_num_path(const struct nexthop *nh)
         |                            ^~~~~~~~~~~~~~~~
   include/net/nexthop.h:336:17: error: invalid storage class for function 'nexthop_mpath_select'
     336 | struct nexthop *nexthop_mpath_select(const struct nh_group *nhg, int nhsel)
         |                 ^~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:348:5: error: invalid storage class for function 'nexthop_mpath_fill_node'
     348 | int nexthop_mpath_fill_node(struct sk_buff *skb, struct nexthop *nh,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:368:20: error: invalid storage class for function 'nexthop_is_blackhole'
     368 | static inline bool nexthop_is_blackhole(const struct nexthop *nh)
         |                    ^~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:386:20: error: invalid storage class for function 'nexthop_path_fib_result'
     386 | static inline void nexthop_path_fib_result(struct fib_result *res, int hash)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h: In function 'nexthop_path_fib_result':
   include/net/nexthop.h:391:41: error: passing argument 1 of 'nexthop_select_path' from incompatible pointer type [-Wincompatible-pointer-types]
     391 |         nh = nexthop_select_path(res->fi->nh, hash);
         |                                  ~~~~~~~^~~~
         |                                         |
         |                                         struct nexthop *
   include/net/nexthop.h:318:53: note: expected 'struct nexthop *' but argument is of type 'struct nexthop *'
     318 | struct nexthop *nexthop_select_path(struct nexthop *nh, int hash);
         |                                     ~~~~~~~~~~~~~~~~^~
   include/net/nexthop.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/nexthop.h:398:23: error: invalid storage class for function 'nexthop_fib_nhc'
     398 | struct fib_nh_common *nexthop_fib_nhc(struct nexthop *nh, int nhsel)
         |                       ^~~~~~~~~~~~~~~
   include/net/nexthop.h:422:23: error: invalid storage class for function 'nexthop_get_nhc_lookup'
     422 | struct fib_nh_common *nexthop_get_nhc_lookup(const struct nexthop *nh,
         |                       ^~~~~~~~~~~~~~~~~~~~~~
   include/net/nexthop.h:453:20: error: invalid storage class for function 'nexthop_uses_dev'


vim +/fib6_rules_init +663 include/net/ip6_fib.h

180ca444b985c4 Wei Wang         2017-10-06  574  
8d1c802b2815ed David Ahern      2018-04-17  575  void fib6_metric_set(struct fib6_info *f6i, int metric, u32 val);
8d1c802b2815ed David Ahern      2018-04-17 @576  static inline bool fib6_metric_locked(struct fib6_info *f6i, int metric)
d4ead6b34b67fd David Ahern      2018-04-17  577  {
d4ead6b34b67fd David Ahern      2018-04-17  578  	return !!(f6i->fib6_metrics->metrics[RTAX_LOCK - 1] & (1 << metric));
d4ead6b34b67fd David Ahern      2018-04-17  579  }
907eea486888cf Amit Cohen       2021-02-01  580  void fib6_info_hw_flags_set(struct net *net, struct fib6_info *f6i,
0c5fcf9e249ee1 Amit Cohen       2021-02-07  581  			    bool offload, bool trap, bool offload_failed);
180ca444b985c4 Wei Wang         2017-10-06  582  
3c32cc1bceba8a Yonghong Song    2020-05-13  583  #if IS_BUILTIN(CONFIG_IPV6) && defined(CONFIG_BPF_SYSCALL)
3c32cc1bceba8a Yonghong Song    2020-05-13  584  struct bpf_iter__ipv6_route {
3c32cc1bceba8a Yonghong Song    2020-05-13  585  	__bpf_md_ptr(struct bpf_iter_meta *, meta);
3c32cc1bceba8a Yonghong Song    2020-05-13  586  	__bpf_md_ptr(struct fib6_info *, rt);
3c32cc1bceba8a Yonghong Song    2020-05-13  587  };
3c32cc1bceba8a Yonghong Song    2020-05-13  588  #endif
3c32cc1bceba8a Yonghong Song    2020-05-13  589  
55cced4f813bec Brian Vazquez    2020-06-23  590  INDIRECT_CALLABLE_DECLARE(struct rt6_info *ip6_pol_route_output(struct net *net,
55cced4f813bec Brian Vazquez    2020-06-23  591  					     struct fib6_table *table,
55cced4f813bec Brian Vazquez    2020-06-23  592  					     struct flowi6 *fl6,
55cced4f813bec Brian Vazquez    2020-06-23  593  					     const struct sk_buff *skb,
55cced4f813bec Brian Vazquez    2020-06-23  594  					     int flags));
55cced4f813bec Brian Vazquez    2020-06-23  595  INDIRECT_CALLABLE_DECLARE(struct rt6_info *ip6_pol_route_input(struct net *net,
55cced4f813bec Brian Vazquez    2020-06-23  596  					     struct fib6_table *table,
55cced4f813bec Brian Vazquez    2020-06-23  597  					     struct flowi6 *fl6,
55cced4f813bec Brian Vazquez    2020-06-23  598  					     const struct sk_buff *skb,
55cced4f813bec Brian Vazquez    2020-06-23  599  					     int flags));
55cced4f813bec Brian Vazquez    2020-06-23  600  INDIRECT_CALLABLE_DECLARE(struct rt6_info *__ip6_route_redirect(struct net *net,
55cced4f813bec Brian Vazquez    2020-06-23  601  					     struct fib6_table *table,
55cced4f813bec Brian Vazquez    2020-06-23  602  					     struct flowi6 *fl6,
55cced4f813bec Brian Vazquez    2020-06-23  603  					     const struct sk_buff *skb,
55cced4f813bec Brian Vazquez    2020-06-23  604  					     int flags));
55cced4f813bec Brian Vazquez    2020-06-23  605  INDIRECT_CALLABLE_DECLARE(struct rt6_info *ip6_pol_route_lookup(struct net *net,
55cced4f813bec Brian Vazquez    2020-06-23  606  					     struct fib6_table *table,
55cced4f813bec Brian Vazquez    2020-06-23  607  					     struct flowi6 *fl6,
55cced4f813bec Brian Vazquez    2020-06-23  608  					     const struct sk_buff *skb,
55cced4f813bec Brian Vazquez    2020-06-23  609  					     int flags));
55cced4f813bec Brian Vazquez    2020-06-23 @610  static inline struct rt6_info *pol_lookup_func(pol_lookup_t lookup,
55cced4f813bec Brian Vazquez    2020-06-23  611  						struct net *net,
55cced4f813bec Brian Vazquez    2020-06-23  612  						struct fib6_table *table,
55cced4f813bec Brian Vazquez    2020-06-23  613  						struct flowi6 *fl6,
55cced4f813bec Brian Vazquez    2020-06-23  614  						const struct sk_buff *skb,
55cced4f813bec Brian Vazquez    2020-06-23  615  						int flags)
55cced4f813bec Brian Vazquez    2020-06-23  616  {
55cced4f813bec Brian Vazquez    2020-06-23  617  	return INDIRECT_CALL_4(lookup,
55cced4f813bec Brian Vazquez    2020-06-23  618  			       ip6_pol_route_output,
55cced4f813bec Brian Vazquez    2020-06-23  619  			       ip6_pol_route_input,
55cced4f813bec Brian Vazquez    2020-06-23  620  			       ip6_pol_route_lookup,
55cced4f813bec Brian Vazquez    2020-06-23  621  			       __ip6_route_redirect,
55cced4f813bec Brian Vazquez    2020-06-23  622  			       net, table, fl6, skb, flags);
55cced4f813bec Brian Vazquez    2020-06-23  623  }
55cced4f813bec Brian Vazquez    2020-06-23  624  
7e5449c21562f1 Daniel Lezcano   2007-12-08  625  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
1f8ac5703037fd Paolo Abeni      2019-11-20  626  static inline bool fib6_has_custom_rules(const struct net *net)
1f8ac5703037fd Paolo Abeni      2019-11-20  627  {
1f8ac5703037fd Paolo Abeni      2019-11-20  628  	return net->ipv6.fib6_has_custom_rules;
1f8ac5703037fd Paolo Abeni      2019-11-20  629  }
1f8ac5703037fd Paolo Abeni      2019-11-20  630  
5c3a0fd7d0fc29 Joe Perches      2013-09-21  631  int fib6_rules_init(void);
5c3a0fd7d0fc29 Joe Perches      2013-09-21  632  void fib6_rules_cleanup(void);
e3ea973159d535 Ido Schimmel     2017-08-03  633  bool fib6_rule_default(const struct fib_rule *rule);
b7a595577ef3dc Jiri Pirko       2019-10-03  634  int fib6_rules_dump(struct net *net, struct notifier_block *nb,
b7a595577ef3dc Jiri Pirko       2019-10-03  635  		    struct netlink_ext_ack *extack);
e60ea45447768c Eric Dumazet     2024-10-09  636  unsigned int fib6_rules_seq_read(const struct net *net);
5e5d6fed374155 Roopa Prabhu     2018-02-28  637  
5e5d6fed374155 Roopa Prabhu     2018-02-28  638  static inline bool fib6_rules_early_flow_dissect(struct net *net,
5e5d6fed374155 Roopa Prabhu     2018-02-28  639  						 struct sk_buff *skb,
5e5d6fed374155 Roopa Prabhu     2018-02-28  640  						 struct flowi6 *fl6,
5e5d6fed374155 Roopa Prabhu     2018-02-28  641  						 struct flow_keys *flkeys)
5e5d6fed374155 Roopa Prabhu     2018-02-28  642  {
5e5d6fed374155 Roopa Prabhu     2018-02-28  643  	unsigned int flag = FLOW_DISSECTOR_F_STOP_AT_ENCAP;
5e5d6fed374155 Roopa Prabhu     2018-02-28  644  
5e5d6fed374155 Roopa Prabhu     2018-02-28  645  	if (!net->ipv6.fib6_rules_require_fldissect)
5e5d6fed374155 Roopa Prabhu     2018-02-28  646  		return false;
5e5d6fed374155 Roopa Prabhu     2018-02-28  647  
8aae7625ff3f0b Florian Westphal 2023-08-30  648  	memset(flkeys, 0, sizeof(*flkeys));
8aae7625ff3f0b Florian Westphal 2023-08-30  649  	__skb_flow_dissect(net, skb, &flow_keys_dissector,
8aae7625ff3f0b Florian Westphal 2023-08-30  650  			   flkeys, NULL, 0, 0, 0, flag);
8aae7625ff3f0b Florian Westphal 2023-08-30  651  
5e5d6fed374155 Roopa Prabhu     2018-02-28  652  	fl6->fl6_sport = flkeys->ports.src;
5e5d6fed374155 Roopa Prabhu     2018-02-28  653  	fl6->fl6_dport = flkeys->ports.dst;
5e5d6fed374155 Roopa Prabhu     2018-02-28  654  	fl6->flowi6_proto = flkeys->basic.ip_proto;
5e5d6fed374155 Roopa Prabhu     2018-02-28  655  
5e5d6fed374155 Roopa Prabhu     2018-02-28  656  	return true;
5e5d6fed374155 Roopa Prabhu     2018-02-28  657  }
7e5449c21562f1 Daniel Lezcano   2007-12-08  658  #else
1f8ac5703037fd Paolo Abeni      2019-11-20 @659  static inline bool fib6_has_custom_rules(const struct net *net)
1f8ac5703037fd Paolo Abeni      2019-11-20  660  {
1f8ac5703037fd Paolo Abeni      2019-11-20  661  	return false;
1f8ac5703037fd Paolo Abeni      2019-11-20  662  }
7e5449c21562f1 Daniel Lezcano   2007-12-08 @663  static inline int               fib6_rules_init(void)
7e5449c21562f1 Daniel Lezcano   2007-12-08  664  {
7e5449c21562f1 Daniel Lezcano   2007-12-08  665  	return 0;
7e5449c21562f1 Daniel Lezcano   2007-12-08  666  }
7e5449c21562f1 Daniel Lezcano   2007-12-08 @667  static inline void              fib6_rules_cleanup(void)
7e5449c21562f1 Daniel Lezcano   2007-12-08  668  {
7e5449c21562f1 Daniel Lezcano   2007-12-08  669  	return ;
7e5449c21562f1 Daniel Lezcano   2007-12-08  670  }
e3ea973159d535 Ido Schimmel     2017-08-03 @671  static inline bool fib6_rule_default(const struct fib_rule *rule)
e3ea973159d535 Ido Schimmel     2017-08-03  672  {
e3ea973159d535 Ido Schimmel     2017-08-03  673  	return true;
e3ea973159d535 Ido Schimmel     2017-08-03  674  }
b7a595577ef3dc Jiri Pirko       2019-10-03 @675  static inline int fib6_rules_dump(struct net *net, struct notifier_block *nb,
b7a595577ef3dc Jiri Pirko       2019-10-03  676  				  struct netlink_ext_ack *extack)
dcb18f762f6ac8 Ido Schimmel     2017-08-03  677  {
dcb18f762f6ac8 Ido Schimmel     2017-08-03  678  	return 0;
dcb18f762f6ac8 Ido Schimmel     2017-08-03  679  }
e60ea45447768c Eric Dumazet     2024-10-09 @680  static inline unsigned int fib6_rules_seq_read(const struct net *net)

:::::: The code at line 663 was first introduced by commit
:::::: 7e5449c21562f1554d2c355db1ec9d3e4f434288 [IPV6]: route6 remove ifdef for fib_rules

:::::: TO: Daniel Lezcano <dlezcano@fr.ibm.com>
:::::: CC: David S. Miller <davem@davemloft.net>

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

                 reply	other threads:[~2026-03-21  8:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202603211611.4ulHj95G-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=coreteam@netfilter.org \
    --cc=fw@strlen.de \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=pablo@netfilter.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox