forked from Minki/linux
forcedeth: account for dropped RX frames
This adds code to update the stats counter for dropped RX frames. Signed-off-by: David Decotigny <david.decotigny@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f5d827aece
commit
0a1f222d24
@ -815,6 +815,7 @@ struct fe_priv {
|
||||
u64 stat_rx_packets;
|
||||
u64 stat_rx_bytes; /* not always available in HW */
|
||||
u64 stat_rx_missed_errors;
|
||||
u64 stat_rx_dropped;
|
||||
|
||||
/* media detection workaround.
|
||||
* Locking: Within irq hander or disable_irq+spin_lock(&np->lock);
|
||||
@ -1758,6 +1759,7 @@ nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage)
|
||||
syncp_start = u64_stats_fetch_begin(&np->swstats_rx_syncp);
|
||||
storage->rx_packets = np->stat_rx_packets;
|
||||
storage->rx_bytes = np->stat_rx_bytes;
|
||||
storage->rx_dropped = np->stat_rx_dropped;
|
||||
storage->rx_missed_errors = np->stat_rx_missed_errors;
|
||||
} while (u64_stats_fetch_retry(&np->swstats_rx_syncp, syncp_start));
|
||||
|
||||
@ -1828,8 +1830,12 @@ static int nv_alloc_rx(struct net_device *dev)
|
||||
np->put_rx.orig = np->first_rx.orig;
|
||||
if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx))
|
||||
np->put_rx_ctx = np->first_rx_ctx;
|
||||
} else
|
||||
} else {
|
||||
u64_stats_update_begin(&np->swstats_rx_syncp);
|
||||
np->stat_rx_dropped++;
|
||||
u64_stats_update_end(&np->swstats_rx_syncp);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1860,8 +1866,12 @@ static int nv_alloc_rx_optimized(struct net_device *dev)
|
||||
np->put_rx.ex = np->first_rx.ex;
|
||||
if (unlikely(np->put_rx_ctx++ == np->last_rx_ctx))
|
||||
np->put_rx_ctx = np->first_rx_ctx;
|
||||
} else
|
||||
} else {
|
||||
u64_stats_update_begin(&np->swstats_rx_syncp);
|
||||
np->stat_rx_dropped++;
|
||||
u64_stats_update_end(&np->swstats_rx_syncp);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user