u32 rx_cnt = priv->plat->rx_queues_to_use;
        unsigned int start;
        int q, stat;
-       u64 *pos;
        char *p;
 
-       pos = data;
        for (q = 0; q < tx_cnt; q++) {
                struct stmmac_txq_stats *txq_stats = &priv->xstats.txq_stats[q];
                struct stmmac_txq_stats snapshot;
 
-               data = pos;
                do {
                        start = u64_stats_fetch_begin(&txq_stats->syncp);
                        snapshot = *txq_stats;
 
                p = (char *)&snapshot + offsetof(struct stmmac_txq_stats, tx_pkt_n);
                for (stat = 0; stat < STMMAC_TXQ_STATS; stat++) {
-                       *data++ += (*(u64 *)p);
+                       *data++ = (*(u64 *)p);
                        p += sizeof(u64);
                }
        }
 
-       pos = data;
        for (q = 0; q < rx_cnt; q++) {
                struct stmmac_rxq_stats *rxq_stats = &priv->xstats.rxq_stats[q];
                struct stmmac_rxq_stats snapshot;
 
-               data = pos;
                do {
                        start = u64_stats_fetch_begin(&rxq_stats->syncp);
                        snapshot = *rxq_stats;
 
                p = (char *)&snapshot + offsetof(struct stmmac_rxq_stats, rx_pkt_n);
                for (stat = 0; stat < STMMAC_RXQ_STATS; stat++) {
-                       *data++ += (*(u64 *)p);
+                       *data++ = (*(u64 *)p);
                        p += sizeof(u64);
                }
        }