Hi Florian,

I love your patch! Perhaps something to improve:

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

url:    
https://github.com/0day-ci/linux/commits/Florian-Westphal/netfilter-nf_tables-support-timeouts-larger-than-23-days/20180417-032146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   net/netfilter/nf_tables_api.c:1238:31: sparse: incorrect type in return 
expression (different address spaces) @@    expected struct nft_stats [noderef] 
<asn:3>* @@    got sn:3>* @@
   net/netfilter/nf_tables_api.c:1238:31:    expected struct nft_stats 
[noderef] <asn:3>*
   net/netfilter/nf_tables_api.c:1238:31:    got void *
   net/netfilter/nf_tables_api.c:1241:31: sparse: incorrect type in return 
expression (different address spaces) @@    expected struct nft_stats [noderef] 
<asn:3>* @@    got sn:3>* @@
   net/netfilter/nf_tables_api.c:1241:31:    expected struct nft_stats 
[noderef] <asn:3>*
   net/netfilter/nf_tables_api.c:1241:31:    got void *
   net/netfilter/nf_tables_api.c:1245:31: sparse: incorrect type in return 
expression (different address spaces) @@    expected struct nft_stats [noderef] 
<asn:3>* @@    got sn:3>* @@
   net/netfilter/nf_tables_api.c:1245:31:    expected struct nft_stats 
[noderef] <asn:3>*
   net/netfilter/nf_tables_api.c:1245:31:    got void *
   net/netfilter/nf_tables_api.c:1268:28: sparse: cast between address spaces 
(<asn:3>-><asn:4>)
   net/netfilter/nf_tables_api.c:1268:28: sparse: incompatible types in 
comparison expression (different address spaces)
   net/netfilter/nf_tables_api.c:1526:23: sparse: incorrect type in assignment 
(different address spaces) @@    expected struct nft_stats *stats @@    got 
struct nft_stats struct nft_stats *stats @@
   net/netfilter/nf_tables_api.c:1534:29: sparse: incorrect type in argument 1 
(different address spaces) @@    expected void [noderef] <asn:3>*__pdata @@    
got [noderef] <asn:3>*__pdata @@
   net/netfilter/nf_tables_api.c:1538:38: sparse: incorrect type in assignment 
(different address spaces) @@    expected struct nft_stats [noderef] 
<asn:3>*stats @@    got [noderef] <asn:3>*stats @@
   net/netfilter/nf_tables_api.c:1552:37: sparse: incorrect type in argument 1 
(different address spaces) @@    expected void [noderef] <asn:3>*__pdata @@    
got [noderef] <asn:3>*__pdata @@
>> net/netfilter/nf_tables_api.c:2789:16: sparse: incorrect type in return 
>> expression (different base types) @@    expected unsigned long long @@    
>> got restricted unsigned long long @@
>> net/netfilter/nf_tables_api.c:2839:47: sparse: incorrect type in argument 3 
>> (different base types) @@    expected restricted __be64 [usertype] value @@  
>>   got __be64 [usertype] value @@
   net/netfilter/nf_tables_api.c:3477:47: sparse: incorrect type in argument 3 
(different base types) @@    expected restricted __be64 [usertype] value @@    
got __be64 [usertype] value @@
   net/netfilter/nf_tables_api.c:3491:55: sparse: incorrect type in argument 3 
(different base types) @@    expected restricted __be64 [usertype] value @@    
got __be64 [usertype] value @@

vim +2789 net/netfilter/nf_tables_api.c

  2784  
  2785  static u64 nf_jiffies64_to_msecs(u64 input)
  2786  {
  2787          u64 ms = jiffies64_to_nsecs(input);
  2788  
> 2789          return cpu_to_be64(div_u64(ms, NSEC_PER_MSEC));
  2790  }
  2791  
  2792  static int nf_tables_fill_set(struct sk_buff *skb, const struct nft_ctx 
*ctx,
  2793                                const struct nft_set *set, u16 event, u16 
flags)
  2794  {
  2795          struct nfgenmsg *nfmsg;
  2796          struct nlmsghdr *nlh;
  2797          struct nlattr *desc;
  2798          u32 portid = ctx->portid;
  2799          u32 seq = ctx->seq;
  2800  
  2801          event = nfnl_msg_type(NFNL_SUBSYS_NFTABLES, event);
  2802          nlh = nlmsg_put(skb, portid, seq, event, sizeof(struct 
nfgenmsg),
  2803                          flags);
  2804          if (nlh == NULL)
  2805                  goto nla_put_failure;
  2806  
  2807          nfmsg = nlmsg_data(nlh);
  2808          nfmsg->nfgen_family     = ctx->family;
  2809          nfmsg->version          = NFNETLINK_V0;
  2810          nfmsg->res_id           = htons(ctx->net->nft.base_seq & 
0xffff);
  2811  
  2812          if (nla_put_string(skb, NFTA_SET_TABLE, ctx->table->name))
  2813                  goto nla_put_failure;
  2814          if (nla_put_string(skb, NFTA_SET_NAME, set->name))
  2815                  goto nla_put_failure;
  2816          if (nla_put_be64(skb, NFTA_SET_HANDLE, cpu_to_be64(set->handle),
  2817                           NFTA_SET_PAD))
  2818                  goto nla_put_failure;
  2819          if (set->flags != 0)
  2820                  if (nla_put_be32(skb, NFTA_SET_FLAGS, 
htonl(set->flags)))
  2821                          goto nla_put_failure;
  2822  
  2823          if (nla_put_be32(skb, NFTA_SET_KEY_TYPE, htonl(set->ktype)))
  2824                  goto nla_put_failure;
  2825          if (nla_put_be32(skb, NFTA_SET_KEY_LEN, htonl(set->klen)))
  2826                  goto nla_put_failure;
  2827          if (set->flags & NFT_SET_MAP) {
  2828                  if (nla_put_be32(skb, NFTA_SET_DATA_TYPE, 
htonl(set->dtype)))
  2829                          goto nla_put_failure;
  2830                  if (nla_put_be32(skb, NFTA_SET_DATA_LEN, 
htonl(set->dlen)))
  2831                          goto nla_put_failure;
  2832          }
  2833          if (set->flags & NFT_SET_OBJECT &&
  2834              nla_put_be32(skb, NFTA_SET_OBJ_TYPE, htonl(set->objtype)))
  2835                  goto nla_put_failure;
  2836  
  2837          if (set->timeout &&
  2838              nla_put_be64(skb, NFTA_SET_TIMEOUT,
> 2839                           nf_jiffies64_to_msecs(set->timeout),
  2840                           NFTA_SET_PAD))
  2841                  goto nla_put_failure;
  2842          if (set->gc_int &&
  2843              nla_put_be32(skb, NFTA_SET_GC_INTERVAL, htonl(set->gc_int)))
  2844                  goto nla_put_failure;
  2845  
  2846          if (set->policy != NFT_SET_POL_PERFORMANCE) {
  2847                  if (nla_put_be32(skb, NFTA_SET_POLICY, 
htonl(set->policy)))
  2848                          goto nla_put_failure;
  2849          }
  2850  
  2851          if (nla_put(skb, NFTA_SET_USERDATA, set->udlen, set->udata))
  2852                  goto nla_put_failure;
  2853  
  2854          desc = nla_nest_start(skb, NFTA_SET_DESC);
  2855          if (desc == NULL)
  2856                  goto nla_put_failure;
  2857          if (set->size &&
  2858              nla_put_be32(skb, NFTA_SET_DESC_SIZE, htonl(set->size)))
  2859                  goto nla_put_failure;
  2860          nla_nest_end(skb, desc);
  2861  
  2862          nlmsg_end(skb, nlh);
  2863          return 0;
  2864  
  2865  nla_put_failure:
  2866          nlmsg_trim(skb, nlh);
  2867          return -1;
  2868  }
  2869  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to