Re: [PATCH 07/12] can: kvaser_usb_leaf: Fix CAN state after restart

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/16/22 15:47, Anssi Hannula wrote:
can_restart() expects CMD_START_CHIP to set the error state to
ERROR_ACTIVE as it calls netif_carrier_on() immediately afterwards.

Otherwise the user may immediately trigger restart again and hit a
BUG_ON() in can_restart().

Fix kvaser_usb_leaf set_mode(CMD_START_CHIP) to set the expected state.

Fixes: 080f40a6fa28 ("can: kvaser_usb: Add support for Kvaser CAN/USB devices")
Signed-off-by: Anssi Hannula <anssi.hannula@xxxxxxxxxx>


Looks good to me.
Tested-by: Jimmy Assarsson <extja@xxxxxxxxxx>

---
  drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
index 2d30a662edb5..5f27c00179c1 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
@@ -1411,6 +1411,8 @@ static int kvaser_usb_leaf_set_mode(struct net_device *netdev,
  		err = kvaser_usb_leaf_simple_cmd_async(priv, CMD_START_CHIP);
  		if (err)
  			return err;
+
+		priv->can.state = CAN_STATE_ERROR_ACTIVE;
  		break;
  	default:
  		return -EOPNOTSUPP;



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux