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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html