diff options
Diffstat (limited to 'drivers/net/can/usb/ucan.c')
| -rw-r--r-- | drivers/net/can/usb/ucan.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/net/can/usb/ucan.c b/drivers/net/can/usb/ucan.c index 1679cbe45ded..c7c41d1fd038 100644 --- a/drivers/net/can/usb/ucan.c +++ b/drivers/net/can/usb/ucan.c @@ -259,7 +259,6 @@ struct ucan_priv;  /* Context Information for transmission URBs */  struct ucan_urb_context {  	struct ucan_priv *up; -	u8 dlc;  	bool allocated;  }; @@ -621,8 +620,11 @@ static void ucan_rx_can_msg(struct ucan_priv *up, struct ucan_message_in *m)  		memcpy(cf->data, m->msg.can_msg.data, cf->len);  	/* don't count error frames as real packets */ -	stats->rx_packets++; -	stats->rx_bytes += cf->len; +	if (!(cf->can_id & CAN_ERR_FLAG)) { +		stats->rx_packets++; +		if (!(cf->can_id & CAN_RTR_FLAG)) +			stats->rx_bytes += cf->len; +	}  	/* pass it to Linux */  	netif_rx(skb); @@ -634,7 +636,7 @@ static void ucan_tx_complete_msg(struct ucan_priv *up,  {  	unsigned long flags;  	u16 count, i; -	u8 echo_index, dlc; +	u8 echo_index;  	u16 len = le16_to_cpu(m->len);  	struct ucan_urb_context *context; @@ -658,7 +660,6 @@ static void ucan_tx_complete_msg(struct ucan_priv *up,  		/* gather information from the context */  		context = &up->context_array[echo_index]; -		dlc = READ_ONCE(context->dlc);  		/* Release context and restart queue if necessary.  		 * Also check if the context was allocated @@ -671,8 +672,8 @@ static void ucan_tx_complete_msg(struct ucan_priv *up,  		    UCAN_TX_COMPLETE_SUCCESS) {  			/* update statistics */  			up->netdev->stats.tx_packets++; -			up->netdev->stats.tx_bytes += dlc; -			can_get_echo_skb(up->netdev, echo_index, NULL); +			up->netdev->stats.tx_bytes += +				can_get_echo_skb(up->netdev, echo_index, NULL);  		} else {  			up->netdev->stats.tx_dropped++;  			can_free_echo_skb(up->netdev, echo_index, NULL); @@ -1086,8 +1087,6 @@ static struct urb *ucan_prepare_tx_urb(struct ucan_priv *up,  	}  	m->len = cpu_to_le16(mlen); -	context->dlc = cf->len; -  	m->subtype = echo_index;  	/* build the urb */  |