Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ee330c7 authored by Holger Bechtold's avatar Holger Bechtold Committed by Marc Kleine-Budde
Browse files

can: c_can: fix calculation of transmitted bytes on tx complete



The number of bytes transmitted was not updated correctly, if several CAN
messages (with different length) were transmitted in one 'bunch'. Thus
programs like 'ifconfig' showed wrong transmit byte counts. Reason was, that
the message object whose DLC is to be read was not necessarily the active one
at the time when

    priv->read_reg(priv, C_CAN_IFACE(MSGCTRL_REG, 0)) & IF_MCONT_DLC_MASK;

was executed.

Signed-off-by: default avatarHolger Bechtold <Holger.Bechtold@gmx.net>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent e35d46ad
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -763,6 +763,7 @@ static void c_can_do_tx(struct net_device *dev)
		if (!(val & (1 << (msg_obj_no - 1)))) {
			can_get_echo_skb(dev,
					msg_obj_no - C_CAN_MSG_OBJ_TX_FIRST);
			c_can_object_get(dev, 0, msg_obj_no, IF_COMM_ALL);
			stats->tx_bytes += priv->read_reg(priv,
					C_CAN_IFACE(MSGCTRL_REG, 0))
					& IF_MCONT_DLC_MASK;