[3.13.y-ckt stable] Patch "can: c_can: end pending transmission on network stop (ifdown)" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Thu Mar 19 20:21:26 UTC 2015

This is a note to let you know that I have just added a patch titled

    can: c_can: end pending transmission on network stop (ifdown)

to the linux-3.13.y-queue branch of the 3.13.y-ckt extended stable tree 
which can be found at:


This patch is scheduled to be released in version 3.13.11-ckt17.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.13.y-ckt tree, see



>From 3a059fa3c5fc6390654ee9c26bdbf5e309466821 Mon Sep 17 00:00:00 2001
From: Viktor Babrian <babrian.viktor at renyi.mta.hu>
Date: Sun, 18 Jan 2015 20:01:40 +0100
Subject: can: c_can: end pending transmission on network stop (ifdown)

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 <babrian.viktor at renyi.mta.hu>
Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
[ kamal: backport to 3.13-stable: context ]
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
 drivers/net/can/c_can/c_can.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
index 77061ee..4b17cd6 100644
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -694,6 +694,9 @@ static void c_can_stop(struct net_device *dev)
 	/* disable all interrupts */
 	c_can_enable_all_interrupts(priv, DISABLE_ALL_INTERRUPTS);

+	/* put ctrl to init on stop to end ongoing transmission */
+	priv->write_reg(priv, C_CAN_CTRL_REG, CONTROL_INIT);
 	/* set the state as STOPPED */
 	priv->can.state = CAN_STATE_STOPPED;

More information about the kernel-team mailing list