staging: unisys: visornic: Fix receive bytes statistics
The receive byte statistics was wrong in /proc/net/dev. Move the collection of statistics after the proper amount of bytes has been calculated and make sure you add it to rx_bytes instead of just replacing it. Signed-off-by: David Kershner <david.kershner@unisys.com> Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5b12100a53
commit
f6b6a8ec9a
@ -1189,16 +1189,16 @@ visornic_rx(struct uiscmdrsp *cmdrsp)
|
|||||||
spin_lock_irqsave(&devdata->priv_lock, flags);
|
spin_lock_irqsave(&devdata->priv_lock, flags);
|
||||||
atomic_dec(&devdata->num_rcvbuf_in_iovm);
|
atomic_dec(&devdata->num_rcvbuf_in_iovm);
|
||||||
|
|
||||||
/* update rcv stats - call it with priv_lock held */
|
|
||||||
devdata->net_stats.rx_packets++;
|
|
||||||
devdata->net_stats.rx_bytes = skb->len;
|
|
||||||
|
|
||||||
/* set length to how much was ACTUALLY received -
|
/* set length to how much was ACTUALLY received -
|
||||||
* NOTE: rcv_done_len includes actual length of data rcvd
|
* NOTE: rcv_done_len includes actual length of data rcvd
|
||||||
* including ethhdr
|
* including ethhdr
|
||||||
*/
|
*/
|
||||||
skb->len = cmdrsp->net.rcv.rcv_done_len;
|
skb->len = cmdrsp->net.rcv.rcv_done_len;
|
||||||
|
|
||||||
|
/* update rcv stats - call it with priv_lock held */
|
||||||
|
devdata->net_stats.rx_packets++;
|
||||||
|
devdata->net_stats.rx_bytes += skb->len;
|
||||||
|
|
||||||
/* test enabled while holding lock */
|
/* test enabled while holding lock */
|
||||||
if (!(devdata->enabled && devdata->enab_dis_acked)) {
|
if (!(devdata->enabled && devdata->enab_dis_acked)) {
|
||||||
/* don't process it unless we're in enable mode and until
|
/* don't process it unless we're in enable mode and until
|
||||||
|
Loading…
Reference in New Issue
Block a user