From a64c3b212fb25e4290567e5f535ff208581bf225 Mon Sep 17 00:00:00 2001 From: Paras Jain Date: Tue, 20 Apr 2021 04:26:09 +0530 Subject: [PATCH] QCMAP: Packet counters are not updated in conntrack Return value of counter api returns s64 instead of u64 Type-casting to the right type. Change-Id: I8f399ccd52ec4e4f4b23d39f3faa7bb6f23262cc Acked-by: Vinisha Varre Signed-off-by: Paras Jain --- net/netfilter/nf_conntrack_core.c | 4 ++-- net/netfilter/nf_conntrack_netlink.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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);