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

Luis Henriques luis.henriques at canonical.com
Wed Feb 4 11:32:02 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.16.y-queue branch of the 3.16.y-ckt extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.16.y-queue

This patch is scheduled to be released in version 3.16.7-ckt6.

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.16.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

>From 6a06b937ee44d2cf1802d619177a1a2b32c09443 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>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
 drivers/net/can/c_can/c_can.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
index 8e78bb48f5a4..60285820f7b4 100644
--- 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 *dev)
 	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;
 }

--
2.1.4





More information about the kernel-team mailing list