Thread (66 messages) 66 messages, 6 authors, 2015-02-16
STALE4157d

[PATCH 3.18 55/57] can: c_can: end pending transmission on network stop (ifdown)

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2015-02-03 23:40:47
Also in: lkml

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Viktor Babrian <redacted>

commit 7ffd7b4e169d619e66928fe5d997723f2c6f1056 upstream.

Put controller into init mode in network stop to end pending transmissions. The
issue is observed in cases when transmitted frame is not acked.

Signed-off-by: Viktor Babrian <redacted>
Cc: linux-stable <redacted>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/can/c_can/c_can.c |    4 ++++
 1 file changed, 4 insertions(+)
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -611,6 +611,10 @@ static void c_can_stop(struct net_device
 	struct c_can_priv *priv = netdev_priv(dev);
 
 	c_can_irq_control(priv, false);
+
+	/* put ctrl to init on stop to end ongoing transmission */
+	priv->write_reg(priv, C_CAN_CTRL_REG, CONTROL_INIT);
+
 	priv->can.state = CAN_STATE_STOPPED;
 }
 

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help