Hi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net/master]

url:    
https://github.com/0day-ci/linux/commits/wenxu-ucloud-cn/net-sched-act_ct-fix-restore-the-qdisc_skb_cb-after-defrag/20200719-093537
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 
2ccb0161a0e9eb06f538557d38987e436fc39b8d
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 
ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> net/sched/act_ct.c:939:6: warning: variable 'defrag' is used uninitialized 
>> whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (clear) {
               ^~~~~
   net/sched/act_ct.c:1026:6: note: uninitialized use occurs here
           if (defrag)
               ^~~~~~
   net/sched/act_ct.c:939:2: note: remove the 'if' if its condition is always 
false
           if (clear) {
           ^~~~~~~~~~~~
   net/sched/act_ct.c:926:13: note: initialize the variable 'defrag' to silence 
this warning
           bool defrag;
                      ^
                       = 0
   1 warning generated.

vim +939 net/sched/act_ct.c

b57dc7c13ea90e Paul Blakey 2019-07-09   912  
b57dc7c13ea90e Paul Blakey 2019-07-09   913  static int tcf_ct_act(struct 
sk_buff *skb, const struct tc_action *a,
b57dc7c13ea90e Paul Blakey 2019-07-09   914                   struct tcf_result 
*res)
b57dc7c13ea90e Paul Blakey 2019-07-09   915  {
b57dc7c13ea90e Paul Blakey 2019-07-09   916     struct net *net = 
dev_net(skb->dev);
b57dc7c13ea90e Paul Blakey 2019-07-09   917     bool cached, commit, clear, 
force;
b57dc7c13ea90e Paul Blakey 2019-07-09   918     enum ip_conntrack_info ctinfo;
b57dc7c13ea90e Paul Blakey 2019-07-09   919     struct tcf_ct *c = to_ct(a);
b57dc7c13ea90e Paul Blakey 2019-07-09   920     struct nf_conn *tmpl = NULL;
b57dc7c13ea90e Paul Blakey 2019-07-09   921     struct nf_hook_state state;
b57dc7c13ea90e Paul Blakey 2019-07-09   922     int nh_ofs, err, retval;
b57dc7c13ea90e Paul Blakey 2019-07-09   923     struct tcf_ct_params *p;
46475bb20f4ba0 Paul Blakey 2020-03-03   924     bool skip_add = false;
b57dc7c13ea90e Paul Blakey 2019-07-09   925     struct nf_conn *ct;
7e9055f6e78f92 wenxu       2020-07-19   926     bool defrag;
b57dc7c13ea90e Paul Blakey 2019-07-09   927     u8 family;
b57dc7c13ea90e Paul Blakey 2019-07-09   928  
b57dc7c13ea90e Paul Blakey 2019-07-09   929     p = 
rcu_dereference_bh(c->params);
b57dc7c13ea90e Paul Blakey 2019-07-09   930  
b57dc7c13ea90e Paul Blakey 2019-07-09   931     retval = 
READ_ONCE(c->tcf_action);
b57dc7c13ea90e Paul Blakey 2019-07-09   932     commit = p->ct_action & 
TCA_CT_ACT_COMMIT;
b57dc7c13ea90e Paul Blakey 2019-07-09   933     clear = p->ct_action & 
TCA_CT_ACT_CLEAR;
b57dc7c13ea90e Paul Blakey 2019-07-09   934     force = p->ct_action & 
TCA_CT_ACT_FORCE;
b57dc7c13ea90e Paul Blakey 2019-07-09   935     tmpl = p->tmpl;
b57dc7c13ea90e Paul Blakey 2019-07-09   936  
8367b3ab6e9a26 wenxu       2020-07-04   937     tcf_lastuse_update(&c->tcf_tm);
8367b3ab6e9a26 wenxu       2020-07-04   938  
b57dc7c13ea90e Paul Blakey 2019-07-09  @939     if (clear) {
b57dc7c13ea90e Paul Blakey 2019-07-09   940             ct = nf_ct_get(skb, 
&ctinfo);
b57dc7c13ea90e Paul Blakey 2019-07-09   941             if (ct) {
b57dc7c13ea90e Paul Blakey 2019-07-09   942                     
nf_conntrack_put(&ct->ct_general);
b57dc7c13ea90e Paul Blakey 2019-07-09   943                     nf_ct_set(skb, 
NULL, IP_CT_UNTRACKED);
b57dc7c13ea90e Paul Blakey 2019-07-09   944             }
b57dc7c13ea90e Paul Blakey 2019-07-09   945  
b57dc7c13ea90e Paul Blakey 2019-07-09   946             goto out;
b57dc7c13ea90e Paul Blakey 2019-07-09   947     }
b57dc7c13ea90e Paul Blakey 2019-07-09   948  
b57dc7c13ea90e Paul Blakey 2019-07-09   949     family = 
tcf_ct_skb_nf_family(skb);
b57dc7c13ea90e Paul Blakey 2019-07-09   950     if (family == NFPROTO_UNSPEC)
b57dc7c13ea90e Paul Blakey 2019-07-09   951             goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09   952  
b57dc7c13ea90e Paul Blakey 2019-07-09   953     /* The conntrack module expects 
to be working at L3.
b57dc7c13ea90e Paul Blakey 2019-07-09   954      * We also try to pull the 
IPv4/6 header to linear area
b57dc7c13ea90e Paul Blakey 2019-07-09   955      */
b57dc7c13ea90e Paul Blakey 2019-07-09   956     nh_ofs = 
skb_network_offset(skb);
b57dc7c13ea90e Paul Blakey 2019-07-09   957     skb_pull_rcsum(skb, nh_ofs);
7e9055f6e78f92 wenxu       2020-07-19   958     err = 
tcf_ct_handle_fragments(net, skb, family, p->zone, &defrag);
b57dc7c13ea90e Paul Blakey 2019-07-09   959     if (err == -EINPROGRESS) {
b57dc7c13ea90e Paul Blakey 2019-07-09   960             retval = TC_ACT_STOLEN;
b57dc7c13ea90e Paul Blakey 2019-07-09   961             goto out;
b57dc7c13ea90e Paul Blakey 2019-07-09   962     }
b57dc7c13ea90e Paul Blakey 2019-07-09   963     if (err)
b57dc7c13ea90e Paul Blakey 2019-07-09   964             goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09   965  
b57dc7c13ea90e Paul Blakey 2019-07-09   966     err = 
tcf_ct_skb_network_trim(skb, family);
b57dc7c13ea90e Paul Blakey 2019-07-09   967     if (err)
b57dc7c13ea90e Paul Blakey 2019-07-09   968             goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09   969  
b57dc7c13ea90e Paul Blakey 2019-07-09   970     /* If we are recirculating 
packets to match on ct fields and
b57dc7c13ea90e Paul Blakey 2019-07-09   971      * committing with a separate 
ct action, then we don't need to
b57dc7c13ea90e Paul Blakey 2019-07-09   972      * actually run the packet 
through conntrack twice unless it's for a
b57dc7c13ea90e Paul Blakey 2019-07-09   973      * different zone.
b57dc7c13ea90e Paul Blakey 2019-07-09   974      */
b57dc7c13ea90e Paul Blakey 2019-07-09   975     cached = 
tcf_ct_skb_nfct_cached(net, skb, p->zone, force);
b57dc7c13ea90e Paul Blakey 2019-07-09   976     if (!cached) {
46475bb20f4ba0 Paul Blakey 2020-03-03   977             if (!commit && 
tcf_ct_flow_table_lookup(p, skb, family)) {
46475bb20f4ba0 Paul Blakey 2020-03-03   978                     skip_add = true;
46475bb20f4ba0 Paul Blakey 2020-03-03   979                     goto do_nat;
46475bb20f4ba0 Paul Blakey 2020-03-03   980             }
46475bb20f4ba0 Paul Blakey 2020-03-03   981  
b57dc7c13ea90e Paul Blakey 2019-07-09   982             /* Associate skb with 
specified zone. */
b57dc7c13ea90e Paul Blakey 2019-07-09   983             if (tmpl) {
b57dc7c13ea90e Paul Blakey 2019-07-09   984                     ct = 
nf_ct_get(skb, &ctinfo);
b57dc7c13ea90e Paul Blakey 2019-07-09   985                     if 
(skb_nfct(skb))
b57dc7c13ea90e Paul Blakey 2019-07-09   986                             
nf_conntrack_put(skb_nfct(skb));
b57dc7c13ea90e Paul Blakey 2019-07-09   987                     
nf_conntrack_get(&tmpl->ct_general);
b57dc7c13ea90e Paul Blakey 2019-07-09   988                     nf_ct_set(skb, 
tmpl, IP_CT_NEW);
b57dc7c13ea90e Paul Blakey 2019-07-09   989             }
b57dc7c13ea90e Paul Blakey 2019-07-09   990  
b57dc7c13ea90e Paul Blakey 2019-07-09   991             state.hook = 
NF_INET_PRE_ROUTING;
b57dc7c13ea90e Paul Blakey 2019-07-09   992             state.net = net;
b57dc7c13ea90e Paul Blakey 2019-07-09   993             state.pf = family;
b57dc7c13ea90e Paul Blakey 2019-07-09   994             err = 
nf_conntrack_in(skb, &state);
b57dc7c13ea90e Paul Blakey 2019-07-09   995             if (err != NF_ACCEPT)
b57dc7c13ea90e Paul Blakey 2019-07-09   996                     goto out_push;
b57dc7c13ea90e Paul Blakey 2019-07-09   997     }
b57dc7c13ea90e Paul Blakey 2019-07-09   998  
46475bb20f4ba0 Paul Blakey 2020-03-03   999  do_nat:
b57dc7c13ea90e Paul Blakey 2019-07-09  1000     ct = nf_ct_get(skb, &ctinfo);
b57dc7c13ea90e Paul Blakey 2019-07-09  1001     if (!ct)
b57dc7c13ea90e Paul Blakey 2019-07-09  1002             goto out_push;
b57dc7c13ea90e Paul Blakey 2019-07-09  1003     nf_ct_deliver_cached_events(ct);
b57dc7c13ea90e Paul Blakey 2019-07-09  1004  
b57dc7c13ea90e Paul Blakey 2019-07-09  1005     err = tcf_ct_act_nat(skb, ct, 
ctinfo, p->ct_action, &p->range, commit);
b57dc7c13ea90e Paul Blakey 2019-07-09  1006     if (err != NF_ACCEPT)
b57dc7c13ea90e Paul Blakey 2019-07-09  1007             goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09  1008  
b57dc7c13ea90e Paul Blakey 2019-07-09  1009     if (commit) {
b57dc7c13ea90e Paul Blakey 2019-07-09  1010             tcf_ct_act_set_mark(ct, 
p->mark, p->mark_mask);
b57dc7c13ea90e Paul Blakey 2019-07-09  1011             
tcf_ct_act_set_labels(ct, p->labels, p->labels_mask);
b57dc7c13ea90e Paul Blakey 2019-07-09  1012  
b57dc7c13ea90e Paul Blakey 2019-07-09  1013             /* This will take care 
of sending queued events
b57dc7c13ea90e Paul Blakey 2019-07-09  1014              * even if the 
connection is already confirmed.
b57dc7c13ea90e Paul Blakey 2019-07-09  1015              */
b57dc7c13ea90e Paul Blakey 2019-07-09  1016             
nf_conntrack_confirm(skb);
46475bb20f4ba0 Paul Blakey 2020-03-03  1017     } else if (!skip_add) {
64ff70b80fd403 Paul Blakey 2020-03-03  1018             
tcf_ct_flow_table_process_conn(p->ct_ft, ct, ctinfo);
46475bb20f4ba0 Paul Blakey 2020-03-03  1019     }
64ff70b80fd403 Paul Blakey 2020-03-03  1020  
b57dc7c13ea90e Paul Blakey 2019-07-09  1021  out_push:
b57dc7c13ea90e Paul Blakey 2019-07-09  1022     skb_push_rcsum(skb, nh_ofs);
b57dc7c13ea90e Paul Blakey 2019-07-09  1023  
b57dc7c13ea90e Paul Blakey 2019-07-09  1024  out:
5e1ad95b630e65 Vlad Buslov 2019-10-30  1025     
tcf_action_update_bstats(&c->common, skb);
7e9055f6e78f92 wenxu       2020-07-19  1026     if (defrag)
7e9055f6e78f92 wenxu       2020-07-19  1027             
qdisc_skb_cb(skb)->pkt_len = skb->len;
b57dc7c13ea90e Paul Blakey 2019-07-09  1028     return retval;
b57dc7c13ea90e Paul Blakey 2019-07-09  1029  
b57dc7c13ea90e Paul Blakey 2019-07-09  1030  drop:
26b537a88ca5b7 Vlad Buslov 2019-10-30  1031     
tcf_action_inc_drop_qstats(&c->common);
b57dc7c13ea90e Paul Blakey 2019-07-09  1032     return TC_ACT_SHOT;
b57dc7c13ea90e Paul Blakey 2019-07-09  1033  }
b57dc7c13ea90e Paul Blakey 2019-07-09  1034  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to