All of lore.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] net/sched/act_connmark.c:98:12: error: invalid storage class for function 'tcf_connmark_init'
Date: Fri, 20 Mar 2026 20:07:57 +0100	[thread overview]
Message-ID: <202603201919.Sx7L8wtQ-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-rhel-9.4-kselftests (https://download.01.org/0day-ci/archive/20260320/202603201919.Sx7L8wtQ-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/20260320/202603201919.Sx7L8wtQ-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/202603201919.Sx7L8wtQ-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from net/sched/act_connmark.c:26:
   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 'static'
      90 |                 WARN_ON_ONCE(lockdep_is_held(&nf_conntrack_expect_lock);
         |                             ^
         |                             ;
>> net/sched/act_connmark.c:98:12: error: invalid storage class for function 'tcf_connmark_init'
      98 | static int tcf_connmark_init(struct net *net, struct nlattr *nla,
         |            ^~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c: In function 'tcf_connmark_init':
>> net/sched/act_connmark.c:103:53: error: 'act_connmark_ops' undeclared (first use in this function); did you mean 'tcf_connmark_act'?
     103 |         struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
         |                                                     ^~~~~~~~~~~~~~~~
         |                                                     tcf_connmark_act
   net/sched/act_connmark.c: In function 'lockdep_nfct_expect_lock_not_held':
>> net/sched/act_connmark.c:192:19: error: invalid storage class for function 'tcf_connmark_dump'
     192 | static inline int tcf_connmark_dump(struct sk_buff *skb, struct tc_action *a,
         |                   ^~~~~~~~~~~~~~~~~
>> net/sched/act_connmark.c:229:13: error: invalid storage class for function 'tcf_connmark_cleanup'
     229 | static void tcf_connmark_cleanup(struct tc_action *a)
         |             ^~~~~~~~~~~~~~~~~~~~
>> net/sched/act_connmark.c:243:33: error: initializer element is not constant
     243 |         .act            =       tcf_connmark_act,
         |                                 ^~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:243:33: note: (near initialization for 'act_connmark_ops.act')
   net/sched/act_connmark.c:244:33: error: initializer element is not constant
     244 |         .dump           =       tcf_connmark_dump,
         |                                 ^~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:244:33: note: (near initialization for 'act_connmark_ops.dump')
   net/sched/act_connmark.c:245:33: error: initializer element is not constant
     245 |         .init           =       tcf_connmark_init,
         |                                 ^~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:245:33: note: (near initialization for 'act_connmark_ops.init')
   net/sched/act_connmark.c:246:33: error: initializer element is not constant
     246 |         .cleanup        =       tcf_connmark_cleanup,
         |                                 ^~~~~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:246:33: note: (near initialization for 'act_connmark_ops.cleanup')
>> net/sched/act_connmark.c:251:23: error: invalid storage class for function 'connmark_init_net'
     251 | static __net_init int connmark_init_net(struct net *net)
         |                       ^~~~~~~~~~~~~~~~~
>> net/sched/act_connmark.c:258:24: error: invalid storage class for function 'connmark_exit_net'
     258 | static void __net_exit connmark_exit_net(struct list_head *net_list)
         |                        ^~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:264:17: error: initializer element is not constant
     264 |         .init = connmark_init_net,
         |                 ^~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:264:17: note: (near initialization for 'connmark_net_ops.init')
   net/sched/act_connmark.c:265:23: error: initializer element is not constant
     265 |         .exit_batch = connmark_exit_net,
         |                       ^~~~~~~~~~~~~~~~~
   net/sched/act_connmark.c:265:23: note: (near initialization for 'connmark_net_ops.exit_batch')
>> net/sched/act_connmark.c:270:19: error: invalid storage class for function 'connmark_init_module'
     270 | static int __init connmark_init_module(void)
         |                   ^~~~~~~~~~~~~~~~~~~~
>> net/sched/act_connmark.c:275:20: error: invalid storage class for function 'connmark_cleanup_module'
     275 | static void __exit connmark_cleanup_module(void)
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from net/sched/act_connmark.c:9:
   include/linux/module.h:132:49: error: invalid storage class for function '__inittest'
     132 |         static inline initcall_t __maybe_unused __inittest(void)                \
         |                                                 ^~~~~~~~~~
   net/sched/act_connmark.c:280:1: note: in expansion of macro 'module_init'
     280 | module_init(connmark_init_module);
         | ^~~~~~~~~~~
>> net/sched/act_connmark.c:280:1: warning: 'alias' attribute ignored [-Wattributes]
   include/linux/module.h:140:49: error: invalid storage class for function '__exittest'
     140 |         static inline exitcall_t __maybe_unused __exittest(void)                \
         |                                                 ^~~~~~~~~~
   net/sched/act_connmark.c:281:1: note: in expansion of macro 'module_exit'
     281 | module_exit(connmark_cleanup_module);
         | ^~~~~~~~~~~
   net/sched/act_connmark.c:281:1: warning: 'alias' attribute ignored [-Wattributes]
>> net/sched/act_connmark.c:284:1: error: expected declaration or statement at end of input
     284 | MODULE_LICENSE("GPL");
         | ^~~~~~~~~~~~~~


vim +/tcf_connmark_init +98 net/sched/act_connmark.c

22a5dc0e5e3e8f Felix Fietkau    2015-01-18   97  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  @98  static int tcf_connmark_init(struct net *net, struct nlattr *nla,
a85a970af265f1 WANG Cong        2016-07-25   99  			     struct nlattr *est, struct tc_action **a,
abbb0d33632ce9 Vlad Buslov      2019-10-30  100  			     struct tcf_proto *tp, u32 flags,
589dad6d71a72d Alexander Aring  2018-02-15  101  			     struct netlink_ext_ack *extack)
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  102  {
acd0a7ab6334f3 Zhengchao Shao   2022-09-08 @103  	struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
288864effe3388 Pedro Tammela    2023-02-14  104  	struct tcf_connmark_parms *nparms, *oparms;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  105  	struct nlattr *tb[TCA_CONNMARK_MAX + 1];
695176bfe5dec2 Cong Wang        2021-07-29  106  	bool bind = flags & TCA_ACT_FLAGS_BIND;
c53075ea5d3c44 Davide Caratti   2019-03-20  107  	struct tcf_chain *goto_ch = NULL;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  108  	struct tcf_connmark_info *ci;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  109  	struct tc_connmark *parm;
c53075ea5d3c44 Davide Caratti   2019-03-20  110  	int ret = 0, err;
7be8ef2cdbfe41 Dmytro Linkin    2019-08-01  111  	u32 index;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  112  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  113  	if (!nla)
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  114  		return -EINVAL;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  115  
8cb081746c031f Johannes Berg    2019-04-26  116  	ret = nla_parse_nested_deprecated(tb, TCA_CONNMARK_MAX, nla,
8cb081746c031f Johannes Berg    2019-04-26  117  					  connmark_policy, NULL);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  118  	if (ret < 0)
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  119  		return ret;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  120  
52491c7607c552 Etienne Noss     2017-03-10  121  	if (!tb[TCA_CONNMARK_PARMS])
52491c7607c552 Etienne Noss     2017-03-10  122  		return -EINVAL;
52491c7607c552 Etienne Noss     2017-03-10  123  
bf4afc53b77aea Linus Torvalds   2026-02-21  124  	nparms = kzalloc_obj(*nparms);
288864effe3388 Pedro Tammela    2023-02-14  125  	if (!nparms)
288864effe3388 Pedro Tammela    2023-02-14  126  		return -ENOMEM;
288864effe3388 Pedro Tammela    2023-02-14  127  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  128  	parm = nla_data(tb[TCA_CONNMARK_PARMS]);
7be8ef2cdbfe41 Dmytro Linkin    2019-08-01  129  	index = parm->index;
7be8ef2cdbfe41 Dmytro Linkin    2019-08-01  130  	ret = tcf_idr_check_alloc(tn, &index, a, bind);
0190c1d452a91c Vlad Buslov      2018-07-05  131  	if (!ret) {
288864effe3388 Pedro Tammela    2023-02-14  132  		ret = tcf_idr_create_from_flags(tn, index, est, a,
288864effe3388 Pedro Tammela    2023-02-14  133  						&act_connmark_ops, bind, flags);
0190c1d452a91c Vlad Buslov      2018-07-05  134  		if (ret) {
7be8ef2cdbfe41 Dmytro Linkin    2019-08-01  135  			tcf_idr_cleanup(tn, index);
288864effe3388 Pedro Tammela    2023-02-14  136  			err = ret;
288864effe3388 Pedro Tammela    2023-02-14  137  			goto out_free;
0190c1d452a91c Vlad Buslov      2018-07-05  138  		}
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  139  
a85a970af265f1 WANG Cong        2016-07-25  140  		ci = to_connmark(*a);
288864effe3388 Pedro Tammela    2023-02-14  141  
288864effe3388 Pedro Tammela    2023-02-14  142  		nparms->net = net;
288864effe3388 Pedro Tammela    2023-02-14  143  		nparms->zone = parm->zone;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  144  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  145  		ret = ACT_P_CREATED;
0190c1d452a91c Vlad Buslov      2018-07-05  146  	} else if (ret > 0) {
a85a970af265f1 WANG Cong        2016-07-25  147  		ci = to_connmark(*a);
288864effe3388 Pedro Tammela    2023-02-14  148  		if (bind) {
c2a67de9bb5433 Pedro Tammela    2023-12-29  149  			err = ACT_P_BOUND;
288864effe3388 Pedro Tammela    2023-02-14  150  			goto out_free;
288864effe3388 Pedro Tammela    2023-02-14  151  		}
695176bfe5dec2 Cong Wang        2021-07-29  152  		if (!(flags & TCA_ACT_FLAGS_REPLACE)) {
288864effe3388 Pedro Tammela    2023-02-14  153  			err = -EEXIST;
288864effe3388 Pedro Tammela    2023-02-14  154  			goto release_idr;
288864effe3388 Pedro Tammela    2023-02-14  155  		}
288864effe3388 Pedro Tammela    2023-02-14  156  
288864effe3388 Pedro Tammela    2023-02-14  157  		nparms->net = rtnl_dereference(ci->parms)->net;
288864effe3388 Pedro Tammela    2023-02-14  158  		nparms->zone = parm->zone;
288864effe3388 Pedro Tammela    2023-02-14  159  
288864effe3388 Pedro Tammela    2023-02-14  160  		ret = 0;
fb07390463c95e Pedro Tammela    2023-02-27  161  	} else {
fb07390463c95e Pedro Tammela    2023-02-27  162  		err = ret;
fb07390463c95e Pedro Tammela    2023-02-27  163  		goto out_free;
4e8ddd7f1758ca Vlad Buslov      2018-07-05  164  	}
288864effe3388 Pedro Tammela    2023-02-14  165  
288864effe3388 Pedro Tammela    2023-02-14  166  	err = tcf_action_check_ctrlact(parm->action, tp, &goto_ch, extack);
c53075ea5d3c44 Davide Caratti   2019-03-20  167  	if (err < 0)
c53075ea5d3c44 Davide Caratti   2019-03-20  168  		goto release_idr;
288864effe3388 Pedro Tammela    2023-02-14  169  
0d752877705c02 Eric Dumazet     2025-07-09  170  	nparms->action = parm->action;
0d752877705c02 Eric Dumazet     2025-07-09  171  
506a03aa04deed Cong Wang        2018-08-29  172  	spin_lock_bh(&ci->tcf_lock);
c53075ea5d3c44 Davide Caratti   2019-03-20  173  	goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch);
288864effe3388 Pedro Tammela    2023-02-14  174  	oparms = rcu_replace_pointer(ci->parms, nparms, lockdep_is_held(&ci->tcf_lock));
506a03aa04deed Cong Wang        2018-08-29  175  	spin_unlock_bh(&ci->tcf_lock);
288864effe3388 Pedro Tammela    2023-02-14  176  
c53075ea5d3c44 Davide Caratti   2019-03-20  177  	if (goto_ch)
c53075ea5d3c44 Davide Caratti   2019-03-20  178  		tcf_chain_put_by_act(goto_ch);
288864effe3388 Pedro Tammela    2023-02-14  179  
288864effe3388 Pedro Tammela    2023-02-14  180  	if (oparms)
288864effe3388 Pedro Tammela    2023-02-14  181  		kfree_rcu(oparms, rcu);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  182  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  183  	return ret;
288864effe3388 Pedro Tammela    2023-02-14  184  
c53075ea5d3c44 Davide Caratti   2019-03-20  185  release_idr:
c53075ea5d3c44 Davide Caratti   2019-03-20  186  	tcf_idr_release(*a, bind);
288864effe3388 Pedro Tammela    2023-02-14  187  out_free:
288864effe3388 Pedro Tammela    2023-02-14  188  	kfree(nparms);
c53075ea5d3c44 Davide Caratti   2019-03-20  189  	return err;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  190  }
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  191  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18 @192  static inline int tcf_connmark_dump(struct sk_buff *skb, struct tc_action *a,
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  193  				    int bind, int ref)
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  194  {
0d752877705c02 Eric Dumazet     2025-07-09  195  	const struct tcf_connmark_info *ci = to_connmark(a);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  196  	unsigned char *b = skb_tail_pointer(skb);
0d752877705c02 Eric Dumazet     2025-07-09  197  	const struct tcf_connmark_parms *parms;
62b656e43eaeae Ranganath V N    2025-11-09  198  	struct tc_connmark opt;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  199  	struct tcf_t t;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  200  
62b656e43eaeae Ranganath V N    2025-11-09  201  	memset(&opt, 0, sizeof(opt));
62b656e43eaeae Ranganath V N    2025-11-09  202  
62b656e43eaeae Ranganath V N    2025-11-09  203  	opt.index   = ci->tcf_index;
62b656e43eaeae Ranganath V N    2025-11-09  204  	opt.refcnt  = refcount_read(&ci->tcf_refcnt) - ref;
62b656e43eaeae Ranganath V N    2025-11-09  205  	opt.bindcnt = atomic_read(&ci->tcf_bindcnt) - bind;
62b656e43eaeae Ranganath V N    2025-11-09  206  
0d752877705c02 Eric Dumazet     2025-07-09  207  	rcu_read_lock();
0d752877705c02 Eric Dumazet     2025-07-09  208  	parms = rcu_dereference(ci->parms);
288864effe3388 Pedro Tammela    2023-02-14  209  
0d752877705c02 Eric Dumazet     2025-07-09  210  	opt.action = parms->action;
288864effe3388 Pedro Tammela    2023-02-14  211  	opt.zone = parms->zone;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  212  	if (nla_put(skb, TCA_CONNMARK_PARMS, sizeof(opt), &opt))
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  213  		goto nla_put_failure;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  214  
48d8ee1694dd1a Jamal Hadi Salim 2016-06-06  215  	tcf_tm_dump(&t, &ci->tcf_tm);
9854518ea04db3 Nicolas Dichtel  2016-04-26  216  	if (nla_put_64bit(skb, TCA_CONNMARK_TM, sizeof(t), &t,
9854518ea04db3 Nicolas Dichtel  2016-04-26  217  			  TCA_CONNMARK_PAD))
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  218  		goto nla_put_failure;
0d752877705c02 Eric Dumazet     2025-07-09  219  	rcu_read_unlock();
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  220  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  221  	return skb->len;
506a03aa04deed Cong Wang        2018-08-29  222  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  223  nla_put_failure:
0d752877705c02 Eric Dumazet     2025-07-09  224  	rcu_read_unlock();
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  225  	nlmsg_trim(skb, b);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  226  	return -1;
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  227  }
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  228  
288864effe3388 Pedro Tammela    2023-02-14 @229  static void tcf_connmark_cleanup(struct tc_action *a)
288864effe3388 Pedro Tammela    2023-02-14  230  {
288864effe3388 Pedro Tammela    2023-02-14  231  	struct tcf_connmark_info *ci = to_connmark(a);
288864effe3388 Pedro Tammela    2023-02-14  232  	struct tcf_connmark_parms *parms;
288864effe3388 Pedro Tammela    2023-02-14  233  
288864effe3388 Pedro Tammela    2023-02-14  234  	parms = rcu_dereference_protected(ci->parms, 1);
288864effe3388 Pedro Tammela    2023-02-14  235  	if (parms)
288864effe3388 Pedro Tammela    2023-02-14  236  		kfree_rcu(parms, rcu);
288864effe3388 Pedro Tammela    2023-02-14  237  }
288864effe3388 Pedro Tammela    2023-02-14  238  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  239  static struct tc_action_ops act_connmark_ops = {
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  240  	.kind		=	"connmark",
eddd2cf195d6fb Eli Cohen        2019-02-10  241  	.id		=	TCA_ID_CONNMARK,
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  242  	.owner		=	THIS_MODULE,
962ad1f937d864 Jamal Hadi Salim 2018-08-12 @243  	.act		=	tcf_connmark_act,
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  244  	.dump		=	tcf_connmark_dump,
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  245  	.init		=	tcf_connmark_init,
288864effe3388 Pedro Tammela    2023-02-14  246  	.cleanup	=	tcf_connmark_cleanup,
a85a970af265f1 WANG Cong        2016-07-25  247  	.size		=	sizeof(struct tcf_connmark_info),
ddf97ccdd7cb7e WANG Cong        2016-02-22  248  };
241a94abcf465b Michal Koutný    2024-02-01  249  MODULE_ALIAS_NET_ACT("connmark");
ddf97ccdd7cb7e WANG Cong        2016-02-22  250  
ddf97ccdd7cb7e WANG Cong        2016-02-22 @251  static __net_init int connmark_init_net(struct net *net)
ddf97ccdd7cb7e WANG Cong        2016-02-22  252  {
acd0a7ab6334f3 Zhengchao Shao   2022-09-08  253  	struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
ddf97ccdd7cb7e WANG Cong        2016-02-22  254  
981471bd3abf4d Cong Wang        2019-08-25  255  	return tc_action_net_init(net, tn, &act_connmark_ops);
ddf97ccdd7cb7e WANG Cong        2016-02-22  256  }
ddf97ccdd7cb7e WANG Cong        2016-02-22  257  
039af9c66b9315 Cong Wang        2017-12-11 @258  static void __net_exit connmark_exit_net(struct list_head *net_list)
ddf97ccdd7cb7e WANG Cong        2016-02-22  259  {
acd0a7ab6334f3 Zhengchao Shao   2022-09-08  260  	tc_action_net_exit(net_list, act_connmark_ops.net_id);
ddf97ccdd7cb7e WANG Cong        2016-02-22  261  }
ddf97ccdd7cb7e WANG Cong        2016-02-22  262  
ddf97ccdd7cb7e WANG Cong        2016-02-22  263  static struct pernet_operations connmark_net_ops = {
ddf97ccdd7cb7e WANG Cong        2016-02-22  264  	.init = connmark_init_net,
039af9c66b9315 Cong Wang        2017-12-11  265  	.exit_batch = connmark_exit_net,
acd0a7ab6334f3 Zhengchao Shao   2022-09-08  266  	.id   = &act_connmark_ops.net_id,
ddf97ccdd7cb7e WANG Cong        2016-02-22  267  	.size = sizeof(struct tc_action_net),
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  268  };
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  269  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18 @270  static int __init connmark_init_module(void)
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  271  {
ddf97ccdd7cb7e WANG Cong        2016-02-22  272  	return tcf_register_action(&act_connmark_ops, &connmark_net_ops);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  273  }
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  274  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18 @275  static void __exit connmark_cleanup_module(void)
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  276  {
ddf97ccdd7cb7e WANG Cong        2016-02-22  277  	tcf_unregister_action(&act_connmark_ops, &connmark_net_ops);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  278  }
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  279  
22a5dc0e5e3e8f Felix Fietkau    2015-01-18 @280  module_init(connmark_init_module);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  281  module_exit(connmark_cleanup_module);
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  282  MODULE_AUTHOR("Felix Fietkau <nbd@openwrt.org>");
22a5dc0e5e3e8f Felix Fietkau    2015-01-18  283  MODULE_DESCRIPTION("Connection tracking mark restoring");
22a5dc0e5e3e8f Felix Fietkau    2015-01-18 @284  MODULE_LICENSE("GPL");

:::::: The code at line 98 was first introduced by commit
:::::: 22a5dc0e5e3e8fef804230cd73ed7b0afd4c7bae net: sched: Introduce connmark action

:::::: TO: Felix Fietkau <nbd@openwrt.org>
:::::: 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-20 19:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-20 19:07 kernel test robot [this message]
2026-03-20 23:41 ` [netfilter-nf:testing 7/9] net/sched/act_connmark.c:98:12: error: invalid storage class for function 'tcf_connmark_init' Pablo Neira Ayuso

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=202603201919.Sx7L8wtQ-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 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.