On 10/29/2014 11:45 AM, Dong Aisheng wrote:
Currently priv->ctrlmode is not cleared when close_candev, so next time
the driver will still use this value to set controller even user
does not set any ctrl mode.
e.g.
Step 1. ip link set can0 up type can0 bitrate 1000000 loopback on
Controller will be in loopback mode
Step 2. ip link set can0 down
Step 3. ip link set can0 up type can0 bitrate 1000000
Controller will still be set to loopback mode in driver due to saved
priv->ctrlmode.
This patch clears priv->ctrlmode when the CAN interface is closed,
and set it to correct mode according to next user setting.
Oliver, what do you think of this patch? It will introduce a subtle
change to the userspace.
Marc
quoted hunk ↗ jump to hunk
Signed-off-by: Dong Aisheng <redacted>
---
drivers/net/can/dev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index 02492d2..1fce485 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -671,6 +671,7 @@ void close_candev(struct net_device *dev)
del_timer_sync(&priv->restart_timer);
can_flush_echo_skb(dev);
+ priv->ctrlmode = 0;
}
EXPORT_SYMBOL_GPL(close_candev);
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |