diff options
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 19d7666dfcc..246646b61a1 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -4681,11 +4681,13 @@ void igb_update_stats(struct igb_adapter *adapter,  	bytes = 0;  	packets = 0;  	for (i = 0; i < adapter->num_rx_queues; i++) { -		u32 rqdpc_tmp = rd32(E1000_RQDPC(i)) & 0x0FFF; +		u32 rqdpc = rd32(E1000_RQDPC(i));  		struct igb_ring *ring = adapter->rx_ring[i]; -		ring->rx_stats.drops += rqdpc_tmp; -		net_stats->rx_fifo_errors += rqdpc_tmp; +		if (rqdpc) { +			ring->rx_stats.drops += rqdpc; +			net_stats->rx_fifo_errors += rqdpc; +		}  		do {  			start = u64_stats_fetch_begin_bh(&ring->rx_syncp);  |