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] 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox