diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index a22c667d4b46..33b29d60cad1 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c @@ -1888,8 +1888,8 @@ acct: [CTINFO2DIR(ctinfo)].bytes); pkts = - atomic64_read(&counter[CTINFO2DIR(ctinfo)].packets) + - atomic64_read(&counter[!CTINFO2DIR(ctinfo)].packets); + ((u64)atomic64_read(&counter[CTINFO2DIR(ctinfo)].packets)) + + ((u64)atomic64_read(&counter[!CTINFO2DIR(ctinfo)].packets)); /* Report if the packet threshold is reached. */ if (nf_conntrack_pkt_threshold > 0 && pkts == nf_conntrack_pkt_threshold) { diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index 719caecb29e9..5b33296fe305 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c @@ -245,8 +245,8 @@ dump_counters(struct sk_buff *skb, struct nf_conn_acct *acct, pkts = atomic64_xchg(&counter[dir].packets, 0); bytes = atomic64_xchg(&counter[dir].bytes, 0); } else { - pkts = atomic64_read(&counter[dir].packets); - bytes = atomic64_read(&counter[dir].bytes); + pkts = (u64)atomic64_read(&counter[dir].packets); + bytes = (u64)atomic64_read(&counter[dir].bytes); } nest_count = nla_nest_start(skb, attr);