diff options
Diffstat (limited to 'drivers/net/ethernet/intel/fm10k/fm10k_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k_main.c | 14 | 
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c index 538b42d5c187..8e12aae065d8 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c @@ -446,13 +446,13 @@ static void fm10k_type_trans(struct fm10k_ring *rx_ring,  	skb->protocol = eth_type_trans(skb, dev); +	/* Record Rx queue, or update macvlan statistics */  	if (!l2_accel) -		return; - -	/* update MACVLAN statistics */ -	macvlan_count_rx(netdev_priv(dev), skb->len + ETH_HLEN, 1, -			 !!(rx_desc->w.hdr_info & -			    cpu_to_le16(FM10K_RXD_HDR_INFO_XC_MASK))); +		skb_record_rx_queue(skb, rx_ring->queue_index); +	else +		macvlan_count_rx(netdev_priv(dev), skb->len + ETH_HLEN, true, +				 (skb->pkt_type == PACKET_BROADCAST) || +				 (skb->pkt_type == PACKET_MULTICAST));  }  /** @@ -479,8 +479,6 @@ static unsigned int fm10k_process_skb_fields(struct fm10k_ring *rx_ring,  	FM10K_CB(skb)->fi.w.vlan = rx_desc->w.vlan; -	skb_record_rx_queue(skb, rx_ring->queue_index); -  	FM10K_CB(skb)->fi.d.glort = rx_desc->d.glort;  	if (rx_desc->w.vlan) {  |