Hi Yi-Hung,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/Yi-Hung-Wei/netfilter-Export-nf_ct_destroy_timeout/20190323-094843
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'


sparse warnings: (new ones prefixed by >>)

   net//openvswitch/conntrack.c:1854:25: sparse: undefined identifier 
'xt_ct_destroy_timeout'
>> net//openvswitch/conntrack.c:1154:28: sparse: incompatible types in 
>> comparison expression (different address spaces)
   net//openvswitch/conntrack.c:1188:23: sparse: incompatible types in 
comparison expression (different address spaces)
   include/linux/slab.h:664:13: sparse: undefined identifier 
'__builtin_mul_overflow'
>> net//openvswitch/conntrack.c:1854:46: sparse: call with no type!
   include/linux/slab.h:664:13: sparse: call with no type!

vim +1154 net//openvswitch/conntrack.c

  1143  
  1144  static void ovs_ct_add_timeout(struct net *net, struct nf_conn *ct,
  1145                                 const char *timeout_name, u16 l3num, u8 
l4num)
  1146  {
  1147  #ifdef CONFIG_NF_CONNTRACK_TIMEOUT
  1148          typeof(nf_ct_timeout_find_get_hook) timeout_find_get;
  1149          typeof(nf_ct_timeout_put_hook) timeout_put;
  1150          struct nf_ct_timeout *timeout;
  1151          struct nf_conn_timeout *timeout_ext;
  1152  
  1153          rcu_read_lock();
> 1154          timeout_find_get = rcu_dereference(nf_ct_timeout_find_get_hook);
  1155          if (!timeout_find_get) {
  1156                  net_info_ratelimited("Timeout policy base is empty");
  1157                  goto out;
  1158          }
  1159  
  1160          timeout = timeout_find_get(net, timeout_name);
  1161          if (!timeout) {
  1162                  net_info_ratelimited("No such timeout policy \"%s\"\n",
  1163                                       timeout_name);
  1164                  goto out;
  1165          }
  1166  
  1167          if (timeout->l3num != l3num) {
  1168                  net_info_ratelimited("Timeout policy `%s' can only be 
used by "
  1169                                       "L3 protocol number %d\n", 
timeout_name,
  1170                                       timeout->l3num);
  1171                  goto err_put_timeout;
  1172          }
  1173  
  1174          if (timeout->l4proto->l4proto != l4num) {
  1175                  net_info_ratelimited("Timeout policy `%s' can only be 
used by "
  1176                                       "L4 protocol number %d\n", 
timeout_name,
  1177                                       timeout->l4proto->l4proto);
  1178                  goto err_put_timeout;
  1179          }
  1180  
  1181          timeout_ext = nf_ct_timeout_ext_add(ct, timeout, GFP_ATOMIC);
  1182          if (!timeout_ext)
  1183                  goto err_put_timeout;
  1184  
  1185          goto out;
  1186  
  1187  err_put_timeout:
  1188          timeout_put = rcu_dereference(nf_ct_timeout_put_hook);
  1189          if (timeout_put)
  1190                  timeout_put(timeout);
  1191  out:
  1192          rcu_read_unlock();
  1193          return;
  1194  #endif
  1195  }
  1196  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to