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/route.h:382:19: error: invalid use of undefined type 'const struct sk_buff'
Date: Sat, 21 Mar 2026 15:16:47 +0800	[thread overview]
Message-ID: <202603211547.w5VSMetj-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: i386-randconfig-007-20260321 (https://download.01.org/0day-ci/archive/20260321/202603211547.w5VSMetj-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/202603211547.w5VSMetj-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/202603211547.w5VSMetj-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from net/netfilter/nf_conntrack_netlink.c:39:
   include/net/netfilter/nf_conntrack_core.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/netfilter/nf_conntrack_core.h:111: error: unterminated argument list invoking macro "WARN_ON_ONCE"
     111 | #endif /* _NF_CONNTRACK_CORE_H */
   include/net/netfilter/nf_conntrack_core.h:90:17: error: 'WARN_ON_ONCE' undeclared (first use in this function)
      90 |                 WARN_ON_ONCE(lockdep_is_held(&nf_conntrack_expect_lock);
         |                 ^~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_core.h:90:17: note: each undeclared identifier is reported only once for each function it appears in
   include/net/netfilter/nf_conntrack_core.h:90:29: error: expected ';' before 'struct'
      90 |                 WARN_ON_ONCE(lockdep_is_held(&nf_conntrack_expect_lock);
         |                             ^
         |                             ;
   In file included from net/netfilter/nf_conntrack_netlink.c:41:
   include/net/netfilter/nf_conntrack_helper.h:125:36: error: invalid storage class for function 'nfct_help'
     125 | static inline struct nf_conn_help *nfct_help(const struct nf_conn *ct)
         |                                    ^~~~~~~~~
   include/net/netfilter/nf_conntrack_helper.h:130:21: error: invalid storage class for function 'nfct_help_data'
     130 | static inline void *nfct_help_data(const struct nf_conn *ct)
         |                     ^~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:42:
   include/net/netfilter/nf_conntrack_seqadj.h:24:38: error: invalid storage class for function 'nfct_seqadj'
      24 | static inline struct nf_conn_seqadj *nfct_seqadj(const struct nf_conn *ct)
         |                                      ^~~~~~~~~~~
   include/net/netfilter/nf_conntrack_seqadj.h:29:38: error: invalid storage class for function 'nfct_seqadj_ext_add'
      29 | static inline struct nf_conn_seqadj *nfct_seqadj_ext_add(struct nf_conn *ct)
         |                                      ^~~~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:45:
   include/net/netfilter/nf_conntrack_acct.h:24:22: error: invalid storage class for function 'nf_conn_acct_find'
      24 | struct nf_conn_acct *nf_conn_acct_find(const struct nf_conn *ct)
         |                      ^~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:30:22: error: invalid storage class for function 'nf_ct_acct_ext_add'
      30 | struct nf_conn_acct *nf_ct_acct_ext_add(struct nf_conn *ct, gfp_t gfp)
         |                      ^~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:51:20: error: invalid storage class for function 'nf_ct_acct_enabled'
      51 | static inline bool nf_ct_acct_enabled(struct net *net)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:61:20: error: invalid storage class for function 'nf_ct_set_acct'
      61 | static inline void nf_ct_set_acct(struct net *net, bool enable)
         |                    ^~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:71:20: error: invalid storage class for function 'nf_ct_acct_update'
      71 | static inline void nf_ct_acct_update(struct nf_conn *ct, u32 dir,
         |                    ^~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:47:
   include/net/netfilter/nf_conntrack_timestamp.h:17:24: error: invalid storage class for function 'nf_conn_tstamp_find'
      17 | struct nf_conn_tstamp *nf_conn_tstamp_find(const struct nf_conn *ct)
         |                        ^~~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_timestamp.h:27:24: error: invalid storage class for function 'nf_ct_tstamp_ext_add'
      27 | struct nf_conn_tstamp *nf_ct_tstamp_ext_add(struct nf_conn *ct, gfp_t gfp)
         |                        ^~~~~~~~~~~~~~~~~~~~
>> include/net/netfilter/nf_conntrack_timestamp.h:44:20: error: invalid storage class for function 'nf_conntrack_tstamp_pernet_init'
      44 | static inline void nf_conntrack_tstamp_pernet_init(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:48:
   include/net/netfilter/nf_conntrack_labels.h:23:38: error: invalid storage class for function 'nf_ct_labels_find'
      23 | static inline struct nf_conn_labels *nf_ct_labels_find(const struct nf_conn *ct)
         |                                      ^~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_labels.h:37:38: error: invalid storage class for function 'nf_ct_labels_ext_add'
      37 | static inline struct nf_conn_labels *nf_ct_labels_ext_add(struct nf_conn *ct)
         |                                      ^~~~~~~~~~~~~~~~~~~~
>> include/net/netfilter/nf_conntrack_labels.h:58:19: error: invalid storage class for function 'nf_connlabels_get'
      58 | static inline int nf_connlabels_get(struct net *net, unsigned int bit) { return 0; }
         |                   ^~~~~~~~~~~~~~~~~
>> include/net/netfilter/nf_conntrack_labels.h:59:20: error: invalid storage class for function 'nf_connlabels_put'
      59 | static inline void nf_connlabels_put(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:49:
   include/net/netfilter/nf_conntrack_synproxy.h:14:40: error: invalid storage class for function 'nfct_synproxy'
      14 | static inline struct nf_conn_synproxy *nfct_synproxy(const struct nf_conn *ct)
         |                                        ^~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_synproxy.h:23:40: error: invalid storage class for function 'nfct_synproxy_ext_add'
      23 | static inline struct nf_conn_synproxy *nfct_synproxy_ext_add(struct nf_conn *ct)
         |                                        ^~~~~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_synproxy.h:32:20: error: invalid storage class for function 'nf_ct_add_synproxy'
      32 | static inline bool nf_ct_add_synproxy(struct nf_conn *ct,
         |                    ^~~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:51:
   include/net/netfilter/nf_nat.h:48:35: error: invalid storage class for function 'nfct_nat'
      48 | static inline struct nf_conn_nat *nfct_nat(const struct nf_conn *ct)
         |                                   ^~~~~~~~
   include/net/netfilter/nf_nat.h:57:20: error: invalid storage class for function 'nf_nat_oif_changed'
      57 | static inline bool nf_nat_oif_changed(unsigned int hooknum,
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_nat.h:111:19: error: invalid storage class for function 'nf_nat_initialized'
     111 | static inline int nf_nat_initialized(const struct nf_conn *ct,
         |                   ^~~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:52:
   include/net/netfilter/nf_nat_helper.h:17:20: error: invalid storage class for function 'nf_nat_mangle_tcp_packet'
      17 | static inline bool nf_nat_mangle_tcp_packet(struct sk_buff *skb,
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_netlink.c:55:
   include/linux/netfilter/nfnetlink.h:62:19: error: invalid storage class for function 'nfnl_msg_type'
      62 | static inline u16 nfnl_msg_type(u8 subsys, u8 msg_type)
         |                   ^~~~~~~~~~~~~
   include/linux/netfilter/nfnetlink.h:67:20: error: invalid storage class for function 'nfnl_fill_hdr'
      67 | static inline void nfnl_fill_hdr(struct nlmsghdr *nlh, u8 family, u8 version,
         |                    ^~~~~~~~~~~~~
   include/linux/netfilter/nfnetlink.h:78:32: error: invalid storage class for function 'nfnl_msg_put'
      78 | static inline struct nlmsghdr *nfnl_msg_put(struct sk_buff *skb, u32 portid,
         |                                ^~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:69:12: error: invalid storage class for function 'ctnetlink_dump_tuples_proto'
      69 | static int ctnetlink_dump_tuples_proto(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:93:12: error: invalid storage class for function 'ipv4_tuple_to_nlattr'
      93 | static int ipv4_tuple_to_nlattr(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:102:12: error: invalid storage class for function 'ipv6_tuple_to_nlattr'
     102 | static int ipv6_tuple_to_nlattr(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:111:12: error: invalid storage class for function 'ctnetlink_dump_tuples_ip'
     111 | static int ctnetlink_dump_tuples_ip(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:138:12: error: invalid storage class for function 'ctnetlink_dump_tuples'
     138 | static int ctnetlink_dump_tuples(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:155:12: error: invalid storage class for function 'ctnetlink_dump_zone_id'
     155 | static int ctnetlink_dump_zone_id(struct sk_buff *skb, int attrtype,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:168:12: error: invalid storage class for function 'ctnetlink_dump_status'
     168 | static int ctnetlink_dump_status(struct sk_buff *skb, const struct nf_conn *ct)
         |            ^~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:178:12: error: invalid storage class for function 'ctnetlink_dump_timeout'
     178 | static int ctnetlink_dump_timeout(struct sk_buff *skb, const struct nf_conn *ct,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:199:12: error: invalid storage class for function 'ctnetlink_dump_protoinfo'
     199 | static int ctnetlink_dump_protoinfo(struct sk_buff *skb, struct nf_conn *ct,
         |            ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:224:12: error: invalid storage class for function 'ctnetlink_dump_helpinfo'
     224 | static int ctnetlink_dump_helpinfo(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:259:1: error: invalid storage class for function 'dump_counters'
     259 | dump_counters(struct sk_buff *skb, struct nf_conn_acct *acct,
         | ^~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:294:1: error: invalid storage class for function 'ctnetlink_dump_acct'
     294 | ctnetlink_dump_acct(struct sk_buff *skb, const struct nf_conn *ct, int type)
         | ^~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:310:1: error: invalid storage class for function 'ctnetlink_dump_timestamp'
     310 | ctnetlink_dump_timestamp(struct sk_buff *skb, const struct nf_conn *ct)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:415:1: error: invalid storage class for function 'ctnetlink_dump_labels'
     415 | ctnetlink_dump_labels(struct sk_buff *skb, const struct nf_conn *ct)
         | ^~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:436:12: error: invalid storage class for function 'ctnetlink_dump_master'
     436 | static int ctnetlink_dump_master(struct sk_buff *skb, const struct nf_conn *ct)
         |            ^~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:457:1: error: invalid storage class for function 'dump_ct_seq_adj'
     457 | dump_ct_seq_adj(struct sk_buff *skb, const struct nf_ct_seqadj *seq, int type)
         | ^~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:481:12: error: invalid storage class for function 'ctnetlink_dump_ct_seq_adj'
     481 | static int ctnetlink_dump_ct_seq_adj(struct sk_buff *skb, struct nf_conn *ct)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:505:12: error: invalid storage class for function 'ctnetlink_dump_ct_synproxy'
     505 | static int ctnetlink_dump_ct_synproxy(struct sk_buff *skb, struct nf_conn *ct)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:530:12: error: invalid storage class for function 'ctnetlink_dump_id'
     530 | static int ctnetlink_dump_id(struct sk_buff *skb, const struct nf_conn *ct)
         |            ^~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:542:12: error: invalid storage class for function 'ctnetlink_dump_use'
     542 | static int ctnetlink_dump_use(struct sk_buff *skb, const struct nf_conn *ct)
         |            ^~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:556:12: error: invalid storage class for function 'ctnetlink_dump_extinfo'
     556 | static int ctnetlink_dump_extinfo(struct sk_buff *skb,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_netlink.c:570:12: error: invalid storage class for function 'ctnetlink_dump_info'
--
   In file included from net/netfilter/nf_conntrack_standalone.c:19:
   include/net/netfilter/nf_conntrack_core.h: In function 'lockdep_nfct_expect_lock_not_held':
   include/net/netfilter/nf_conntrack_core.h:111: error: unterminated argument list invoking macro "WARN_ON_ONCE"
     111 | #endif /* _NF_CONNTRACK_CORE_H */
   include/net/netfilter/nf_conntrack_core.h:90:17: error: 'WARN_ON_ONCE' undeclared (first use in this function)
      90 |                 WARN_ON_ONCE(lockdep_is_held(&nf_conntrack_expect_lock);
         |                 ^~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_core.h:90:17: note: each undeclared identifier is reported only once for each function it appears in
   include/net/netfilter/nf_conntrack_core.h:90:29: error: expected ';' before 'struct'
      90 |                 WARN_ON_ONCE(lockdep_is_held(&nf_conntrack_expect_lock);
         |                             ^
         |                             ;
   In file included from net/netfilter/nf_conntrack_standalone.c:22:
   include/net/netfilter/nf_conntrack_helper.h:125:36: error: invalid storage class for function 'nfct_help'
     125 | static inline struct nf_conn_help *nfct_help(const struct nf_conn *ct)
         |                                    ^~~~~~~~~
   include/net/netfilter/nf_conntrack_helper.h:130:21: error: invalid storage class for function 'nfct_help_data'
     130 | static inline void *nfct_help_data(const struct nf_conn *ct)
         |                     ^~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_standalone.c:23:
   include/net/netfilter/nf_conntrack_acct.h:24:22: error: invalid storage class for function 'nf_conn_acct_find'
      24 | struct nf_conn_acct *nf_conn_acct_find(const struct nf_conn *ct)
         |                      ^~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:30:22: error: invalid storage class for function 'nf_ct_acct_ext_add'
      30 | struct nf_conn_acct *nf_ct_acct_ext_add(struct nf_conn *ct, gfp_t gfp)
         |                      ^~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:51:20: error: invalid storage class for function 'nf_ct_acct_enabled'
      51 | static inline bool nf_ct_acct_enabled(struct net *net)
         |                    ^~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:61:20: error: invalid storage class for function 'nf_ct_set_acct'
      61 | static inline void nf_ct_set_acct(struct net *net, bool enable)
         |                    ^~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_acct.h:71:20: error: invalid storage class for function 'nf_ct_acct_update'
      71 | static inline void nf_ct_acct_update(struct nf_conn *ct, u32 dir,
         |                    ^~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nf_conntrack_standalone.c:25:
   include/net/netfilter/nf_conntrack_timestamp.h:17:24: error: invalid storage class for function 'nf_conn_tstamp_find'
      17 | struct nf_conn_tstamp *nf_conn_tstamp_find(const struct nf_conn *ct)
         |                        ^~~~~~~~~~~~~~~~~~~
   include/net/netfilter/nf_conntrack_timestamp.h:27:24: error: invalid storage class for function 'nf_ct_tstamp_ext_add'
      27 | struct nf_conn_tstamp *nf_ct_tstamp_ext_add(struct nf_conn *ct, gfp_t gfp)
         |                        ^~~~~~~~~~~~~~~~~~~~
>> include/net/netfilter/nf_conntrack_timestamp.h:44:20: error: invalid storage class for function 'nf_conntrack_tstamp_pernet_init'
      44 | static inline void nf_conntrack_tstamp_pernet_init(struct net *net) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/module.h:23,
                    from include/linux/device/driver.h:21,
                    from include/linux/device.h:32,
                    from include/linux/dma-mapping.h:5,
                    from include/linux/skbuff.h:28,
                    from include/linux/netfilter.h:6,
                    from net/netfilter/nf_conntrack_standalone.c:3:
   include/linux/moduleparam.h:442:45: error: invalid storage class for function '__check_enable_hooks'
     442 |         static inline type __always_unused *__check_##name(void) { return(p); }
         |                                             ^~~~~~~~
   include/linux/moduleparam.h:501:35: note: in expansion of macro '__param_check'
     501 | #define param_check_bool(name, p) __param_check(name, p, bool)
         |                                   ^~~~~~~~~~~~~
   include/linux/moduleparam.h:163:9: note: in expansion of macro 'param_check_bool'
     163 |         param_check_##type(name, &(value));                                \
         |         ^~~~~~~~~~~~
   include/linux/moduleparam.h:140:9: note: in expansion of macro 'module_param_named'
     140 |         module_param_named(name, name, type, perm)
         |         ^~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:30:1: note: in expansion of macro 'module_param'
      30 | module_param(enable_hooks, bool, 0000);
         | ^~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:32:14: error: section attribute cannot be specified for local variables
      32 | unsigned int nf_conntrack_net_id __read_mostly;
         |              ^~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:517:12: error: invalid storage class for function 'nf_conntrack_standalone_init_proc'
     517 | static int nf_conntrack_standalone_init_proc(struct net *net)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:522:13: error: invalid storage class for function 'nf_conntrack_standalone_fini_proc'
     522 | static void nf_conntrack_standalone_fini_proc(struct net *net)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:18,
                    from include/linux/skbuff.h:13:
   net/netfilter/nf_conntrack_standalone.c:533:19: error: non-static declaration of 'nf_conntrack_count' follows static declaration
     533 | EXPORT_SYMBOL_GPL(nf_conntrack_count);
         |                   ^~~~~~~~~~~~~~~~~~
   include/linux/export.h:76:28: note: in definition of macro '__EXPORT_SYMBOL'
      76 |         extern typeof(sym) sym;                                 \
         |                            ^~~
   include/linux/export.h:90:41: note: in expansion of macro '_EXPORT_SYMBOL'
      90 | #define EXPORT_SYMBOL_GPL(sym)          _EXPORT_SYMBOL(sym, "GPL")
         |                                         ^~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:533:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
     533 | EXPORT_SYMBOL_GPL(nf_conntrack_count);
         | ^~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:527:5: note: previous definition of 'nf_conntrack_count' with type 'u32(const struct net *)' {aka 'unsigned int(const struct net *)'}
     527 | u32 nf_conntrack_count(const struct net *net)
         |     ^~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:542:1: error: invalid storage class for function 'nf_conntrack_hash_sysctl'
     542 | nf_conntrack_hash_sysctl(const struct ctl_table *table, int write,
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:563:1: error: invalid storage class for function 'nf_conntrack_log_invalid_sysctl'
     563 | nf_conntrack_log_invalid_sysctl(const struct ctl_table *table, int write,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:665:35: error: initializer element is not constant
     665 |                 .proc_handler   = nf_conntrack_hash_sysctl,
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:665:35: note: (near initialization for 'nf_ct_sysctl_table[2].proc_handler')
   net/netfilter/nf_conntrack_standalone.c:681:35: error: initializer element is not constant
     681 |                 .proc_handler   = nf_conntrack_log_invalid_sysctl,
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:681:35: note: (near initialization for 'nf_ct_sysctl_table[4].proc_handler')
   net/netfilter/nf_conntrack_standalone.c:937:13: error: invalid storage class for function 'nf_conntrack_standalone_init_tcp_sysctl'
     937 | static void nf_conntrack_standalone_init_tcp_sysctl(struct net *net,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:972:13: error: invalid storage class for function 'nf_conntrack_standalone_init_sctp_sysctl'
     972 | static void nf_conntrack_standalone_init_sctp_sysctl(struct net *net,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:994:13: error: invalid storage class for function 'nf_conntrack_standalone_init_gre_sysctl'
     994 | static void nf_conntrack_standalone_init_gre_sysctl(struct net *net,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1005:12: error: invalid storage class for function 'nf_conntrack_standalone_init_sysctl'
    1005 | static int nf_conntrack_standalone_init_sysctl(struct net *net)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1061:13: error: invalid storage class for function 'nf_conntrack_standalone_fini_sysctl'
    1061 | static void nf_conntrack_standalone_fini_sysctl(struct net *net)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1081:13: error: invalid storage class for function 'nf_conntrack_fini_net'
    1081 | static void nf_conntrack_fini_net(struct net *net)
         |             ^~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1090:12: error: invalid storage class for function 'nf_conntrack_pernet_init'
    1090 | static int nf_conntrack_pernet_init(struct net *net)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1125:13: error: invalid storage class for function 'nf_conntrack_pernet_exit'
    1125 | static void nf_conntrack_pernet_exit(struct list_head *net_exit_list)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1136:27: error: initializer element is not constant
    1136 |         .init           = nf_conntrack_pernet_init,
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1136:27: note: (near initialization for 'nf_conntrack_net_ops.init')
   net/netfilter/nf_conntrack_standalone.c:1137:27: error: initializer element is not constant
    1137 |         .exit_batch     = nf_conntrack_pernet_exit,
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~
   net/netfilter/nf_conntrack_standalone.c:1137:27: note: (near initialization for 'nf_conntrack_net_ops.exit_batch')
   net/netfilter/nf_conntrack_standalone.c:1138:27: error: initializer element is not constant
    1138 |         .id             = &nf_conntrack_net_id,
         |                           ^
..


vim +382 include/net/route.h

510c321b557121 Xin Long           2018-02-14  274  
ee28906fd7a143 Stefano Brivio     2019-06-21  275  int fib_dump_info_fnhe(struct sk_buff *skb, struct netlink_callback *cb,
ee28906fd7a143 Stefano Brivio     2019-06-21  276  		       u32 table_id, struct fib_info *fi,
e93fb3e9521abf John Fastabend     2019-08-23  277  		       int *fa_index, int fa_start, unsigned int flags);
ee28906fd7a143 Stefano Brivio     2019-06-21  278  
^1da177e4c3f41 Linus Torvalds     2005-04-16 @279  static inline void ip_rt_put(struct rtable *rt)
^1da177e4c3f41 Linus Torvalds     2005-04-16  280  {
6da025fa23bb10 Eric Dumazet       2012-10-28  281  	/* dst_release() accepts a NULL parameter.
6da025fa23bb10 Eric Dumazet       2012-10-28  282  	 * We rely on dst being first structure in struct rtable
6da025fa23bb10 Eric Dumazet       2012-10-28  283  	 */
6da025fa23bb10 Eric Dumazet       2012-10-28  284  	BUILD_BUG_ON(offsetof(struct rtable, dst) != 0);
d8d1f30b95a635 Changli Gao        2010-06-10  285  	dst_release(&rt->dst);
^1da177e4c3f41 Linus Torvalds     2005-04-16  286  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  287  
4839c52b01ca91 Philippe De Muyter 2007-07-09  288  extern const __u8 ip_tos2prio[16];
^1da177e4c3f41 Linus Torvalds     2005-04-16  289  
^1da177e4c3f41 Linus Torvalds     2005-04-16 @290  static inline char rt_tos2priority(u8 tos)
^1da177e4c3f41 Linus Torvalds     2005-04-16  291  {
^1da177e4c3f41 Linus Torvalds     2005-04-16  292  	return ip_tos2prio[IPTOS_TOS(tos)>>1];
^1da177e4c3f41 Linus Torvalds     2005-04-16  293  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  294  
2d7192d6cbab20 David S. Miller    2011-04-26  295  /* ip_route_connect() and ip_route_newports() work in tandem whilst
2d7192d6cbab20 David S. Miller    2011-04-26  296   * binding a socket for a new outgoing connection.
2d7192d6cbab20 David S. Miller    2011-04-26  297   *
2d7192d6cbab20 David S. Miller    2011-04-26  298   * In order to use IPSEC properly, we must, in the end, have a
2d7192d6cbab20 David S. Miller    2011-04-26  299   * route that was looked up using all available keys including source
2d7192d6cbab20 David S. Miller    2011-04-26  300   * and destination ports.
2d7192d6cbab20 David S. Miller    2011-04-26  301   *
2d7192d6cbab20 David S. Miller    2011-04-26  302   * However, if a source port needs to be allocated (the user specified
2d7192d6cbab20 David S. Miller    2011-04-26  303   * a wildcard source port) we need to obtain addressing information
2d7192d6cbab20 David S. Miller    2011-04-26  304   * in order to perform that allocation.
2d7192d6cbab20 David S. Miller    2011-04-26  305   *
2d7192d6cbab20 David S. Miller    2011-04-26  306   * So ip_route_connect() looks up a route using wildcarded source and
2d7192d6cbab20 David S. Miller    2011-04-26  307   * destination ports in the key, simply so that we can get a pair of
2d7192d6cbab20 David S. Miller    2011-04-26  308   * addresses to use for port allocation.
2d7192d6cbab20 David S. Miller    2011-04-26  309   *
2d7192d6cbab20 David S. Miller    2011-04-26  310   * Later, once the ports are allocated, ip_route_newports() will make
2d7192d6cbab20 David S. Miller    2011-04-26  311   * another route lookup if needed to make sure we catch any IPSEC
2d7192d6cbab20 David S. Miller    2011-04-26  312   * rules keyed on the port information.
2d7192d6cbab20 David S. Miller    2011-04-26  313   *
2d7192d6cbab20 David S. Miller    2011-04-26  314   * The callers allocate the flow key on their stack, and must pass in
2d7192d6cbab20 David S. Miller    2011-04-26  315   * the same flowi4 object to both the ip_route_connect() and the
2d7192d6cbab20 David S. Miller    2011-04-26  316   * ip_route_newports() calls.
2d7192d6cbab20 David S. Miller    2011-04-26  317   */
2d7192d6cbab20 David S. Miller    2011-04-26  318  
67e1e2f4854bb2 Guillaume Nault    2022-04-21 @319  static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst,
67e1e2f4854bb2 Guillaume Nault    2022-04-21  320  					 __be32 src, int oif, u8 protocol,
b23dd4fe42b455 David S. Miller    2011-03-02  321  					 __be16 sport, __be16 dport,
67e1e2f4854bb2 Guillaume Nault    2022-04-21  322  					 const struct sock *sk)
^1da177e4c3f41 Linus Torvalds     2005-04-16  323  {
2d7192d6cbab20 David S. Miller    2011-04-26  324  	__u8 flow_flags = 0;
79876874ce20d3 KOVACS Krisztian   2008-10-01  325  
4bd0623f04eef6 Eric Dumazet       2023-08-16  326  	if (inet_test_bit(TRANSPARENT, sk))
94b92b88344641 David S. Miller    2011-03-31  327  		flow_flags |= FLOWI_FLAG_ANYSRC;
94b92b88344641 David S. Miller    2011-03-31  328  
65e9024643c751 Willem de Bruijn   2025-04-24  329  	if (IS_ENABLED(CONFIG_IP_ROUTE_MULTIPATH) && !sport)
65e9024643c751 Willem de Bruijn   2025-04-24  330  		flow_flags |= FLOWI_FLAG_ANY_SPORT;
65e9024643c751 Willem de Bruijn   2025-04-24  331  
3c5b4d69c358a9 Eric Dumazet       2023-07-28  332  	flowi4_init_output(fl4, oif, READ_ONCE(sk->sk_mark), ip_sock_rt_tos(sk),
67e1e2f4854bb2 Guillaume Nault    2022-04-21  333  			   ip_sock_rt_scope(sk), protocol, flow_flags, dst,
e84a4927a404f3 Eric Dumazet       2025-06-20  334  			   src, dport, sport, sk_uid(sk));
2d7192d6cbab20 David S. Miller    2011-04-26  335  }
2d7192d6cbab20 David S. Miller    2011-04-26  336  
67e1e2f4854bb2 Guillaume Nault    2022-04-21 @337  static inline struct rtable *ip_route_connect(struct flowi4 *fl4, __be32 dst,
67e1e2f4854bb2 Guillaume Nault    2022-04-21  338  					      __be32 src, int oif, u8 protocol,
2d7192d6cbab20 David S. Miller    2011-04-26  339  					      __be16 sport, __be16 dport,
8d6eba33a2726e Guillaume Nault    2023-07-11  340  					      const struct sock *sk)
2d7192d6cbab20 David S. Miller    2011-04-26  341  {
2d7192d6cbab20 David S. Miller    2011-04-26  342  	struct net *net = sock_net(sk);
2d7192d6cbab20 David S. Miller    2011-04-26  343  	struct rtable *rt;
2d7192d6cbab20 David S. Miller    2011-04-26  344  
67e1e2f4854bb2 Guillaume Nault    2022-04-21  345  	ip_route_connect_init(fl4, dst, src, oif, protocol, sport, dport, sk);
79876874ce20d3 KOVACS Krisztian   2008-10-01  346  
^1da177e4c3f41 Linus Torvalds     2005-04-16  347  	if (!dst || !src) {
2d7192d6cbab20 David S. Miller    2011-04-26  348  		rt = __ip_route_output_key(net, fl4);
b23dd4fe42b455 David S. Miller    2011-03-02  349  		if (IS_ERR(rt))
b23dd4fe42b455 David S. Miller    2011-03-02  350  			return rt;
b23dd4fe42b455 David S. Miller    2011-03-02  351  		ip_rt_put(rt);
3f06760c00f56c Guillaume Nault    2023-06-01  352  		flowi4_update_output(fl4, oif, fl4->daddr, fl4->saddr);
^1da177e4c3f41 Linus Torvalds     2005-04-16  353  	}
3df98d79215ace Paul Moore         2020-09-27  354  	security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4));
2d7192d6cbab20 David S. Miller    2011-04-26  355  	return ip_route_output_flow(net, fl4, sk);
^1da177e4c3f41 Linus Torvalds     2005-04-16  356  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  357  
2d7192d6cbab20 David S. Miller    2011-04-26 @358  static inline struct rtable *ip_route_newports(struct flowi4 *fl4, struct rtable *rt,
2d7192d6cbab20 David S. Miller    2011-04-26  359  					       __be16 orig_sport, __be16 orig_dport,
2d7192d6cbab20 David S. Miller    2011-04-26  360  					       __be16 sport, __be16 dport,
8d6eba33a2726e Guillaume Nault    2023-07-11  361  					       const struct sock *sk)
^1da177e4c3f41 Linus Torvalds     2005-04-16  362  {
dca8b089c95d94 David S. Miller    2011-02-24  363  	if (sport != orig_sport || dport != orig_dport) {
2d7192d6cbab20 David S. Miller    2011-04-26  364  		fl4->fl4_dport = dport;
2d7192d6cbab20 David S. Miller    2011-04-26  365  		fl4->fl4_sport = sport;
b23dd4fe42b455 David S. Miller    2011-03-02  366  		ip_rt_put(rt);
3f06760c00f56c Guillaume Nault    2023-06-01  367  		flowi4_update_output(fl4, sk->sk_bound_dev_if, fl4->daddr,
e6b45241c57a83 Julian Anastasov   2012-02-04  368  				     fl4->saddr);
3df98d79215ace Paul Moore         2020-09-27  369  		security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4));
2d7192d6cbab20 David S. Miller    2011-04-26  370  		return ip_route_output_flow(sock_net(sk), fl4, sk);
^1da177e4c3f41 Linus Torvalds     2005-04-16  371  	}
b23dd4fe42b455 David S. Miller    2011-03-02  372  	return rt;
^1da177e4c3f41 Linus Torvalds     2005-04-16  373  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  374  
1668e010cbe1a7 KOVACS Krisztian   2008-10-01 @375  static inline int inet_iif(const struct sk_buff *skb)
1668e010cbe1a7 KOVACS Krisztian   2008-10-01  376  {
0340d0b9e0e2dc Tom Herbert        2016-04-05  377  	struct rtable *rt = skb_rtable(skb);
0340d0b9e0e2dc Tom Herbert        2016-04-05  378  
0340d0b9e0e2dc Tom Herbert        2016-04-05  379  	if (rt && rt->rt_iif)
0340d0b9e0e2dc Tom Herbert        2016-04-05  380  		return rt->rt_iif;
13378cad02afc2 David S. Miller    2012-07-23  381  
13378cad02afc2 David S. Miller    2012-07-23 @382  	return skb->skb_iif;
1668e010cbe1a7 KOVACS Krisztian   2008-10-01  383  }
1668e010cbe1a7 KOVACS Krisztian   2008-10-01  384  
323e126f0c5995 David S. Miller    2010-12-12 @385  static inline int ip4_dst_hoplimit(const struct dst_entry *dst)
323e126f0c5995 David S. Miller    2010-12-12  386  {
323e126f0c5995 David S. Miller    2010-12-12  387  	int hoplimit = dst_metric_raw(dst, RTAX_HOPLIMIT);
323e126f0c5995 David S. Miller    2010-12-12  388  
469308552ca456 Eric Dumazet       2025-02-05  389  	if (hoplimit == 0) {
469308552ca456 Eric Dumazet       2025-02-05  390  		const struct net *net;
469308552ca456 Eric Dumazet       2025-02-05  391  
469308552ca456 Eric Dumazet       2025-02-05  392  		rcu_read_lock();
99a2ace61b211b Eric Dumazet       2025-08-28 @393  		net = dst_dev_net_rcu(dst);
8281b7ec5c56b7 Kuniyuki Iwashima  2022-07-13 @394  		hoplimit = READ_ONCE(net->ipv4.sysctl_ip_default_ttl);
469308552ca456 Eric Dumazet       2025-02-05  395  		rcu_read_unlock();
469308552ca456 Eric Dumazet       2025-02-05  396  	}
323e126f0c5995 David S. Miller    2010-12-12  397  	return hoplimit;
323e126f0c5995 David S. Miller    2010-12-12  398  }
323e126f0c5995 David S. Miller    2010-12-12  399  
5c9f7c1dfc2e07 David Ahern        2019-04-05 @400  static inline struct neighbour *ip_neigh_gw4(struct net_device *dev,
5c9f7c1dfc2e07 David Ahern        2019-04-05  401  					     __be32 daddr)
5c9f7c1dfc2e07 David Ahern        2019-04-05  402  {
5c9f7c1dfc2e07 David Ahern        2019-04-05  403  	struct neighbour *neigh;
5c9f7c1dfc2e07 David Ahern        2019-04-05  404  
3c42b2019863b3 Eric Dumazet       2022-01-26 @405  	neigh = __ipv4_neigh_lookup_noref(dev, (__force u32)daddr);
5c9f7c1dfc2e07 David Ahern        2019-04-05  406  	if (unlikely(!neigh))
5c9f7c1dfc2e07 David Ahern        2019-04-05 @407  		neigh = __neigh_create(&arp_tbl, &daddr, dev, false);
5c9f7c1dfc2e07 David Ahern        2019-04-05  408  
5c9f7c1dfc2e07 David Ahern        2019-04-05  409  	return neigh;
5c9f7c1dfc2e07 David Ahern        2019-04-05  410  }
5c9f7c1dfc2e07 David Ahern        2019-04-05  411  
5c9f7c1dfc2e07 David Ahern        2019-04-05 @412  static inline struct neighbour *ip_neigh_for_gw(struct rtable *rt,
5c9f7c1dfc2e07 David Ahern        2019-04-05  413  						struct sk_buff *skb,
5c9f7c1dfc2e07 David Ahern        2019-04-05  414  						bool *is_v6gw)
5c9f7c1dfc2e07 David Ahern        2019-04-05  415  {
5c9f7c1dfc2e07 David Ahern        2019-04-05 @416  	struct net_device *dev = rt->dst.dev;
5c9f7c1dfc2e07 David Ahern        2019-04-05  417  	struct neighbour *neigh;
5c9f7c1dfc2e07 David Ahern        2019-04-05  418  
5c9f7c1dfc2e07 David Ahern        2019-04-05  419  	if (likely(rt->rt_gw_family == AF_INET)) {
5c9f7c1dfc2e07 David Ahern        2019-04-05  420  		neigh = ip_neigh_gw4(dev, rt->rt_gw4);
5c9f7c1dfc2e07 David Ahern        2019-04-05  421  	} else if (rt->rt_gw_family == AF_INET6) {
5c9f7c1dfc2e07 David Ahern        2019-04-05  422  		neigh = ip_neigh_gw6(dev, &rt->rt_gw6);
5c9f7c1dfc2e07 David Ahern        2019-04-05  423  		*is_v6gw = true;
5c9f7c1dfc2e07 David Ahern        2019-04-05  424  	} else {
5c9f7c1dfc2e07 David Ahern        2019-04-05 @425  		neigh = ip_neigh_gw4(dev, ip_hdr(skb)->daddr);
5c9f7c1dfc2e07 David Ahern        2019-04-05  426  	}
5c9f7c1dfc2e07 David Ahern        2019-04-05  427  	return neigh;
5c9f7c1dfc2e07 David Ahern        2019-04-05  428  }
5c9f7c1dfc2e07 David Ahern        2019-04-05  429  

:::::: The code at line 382 was first introduced by commit
:::::: 13378cad02afc2adc6c0e07fca03903c7ada0b37 ipv4: Change rt->rt_iif encoding.

:::::: TO: David S. Miller <davem@davemloft.net>
:::::: 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  7:18 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=202603211547.w5VSMetj-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