From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oliver Hartkopp Subject: [PATCH v9 7/7] can: add bittiming check at interface open for CAN FD Date: Fri, 28 Feb 2014 16:36:25 +0100 Message-ID: <1393601785-4631-8-git-send-email-socketcan@hartkopp.net> References: <1393601785-4631-1-git-send-email-socketcan@hartkopp.net> Return-path: Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.221]:38347 "EHLO mo4-p00-ob.smtp.rzone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752308AbaB1Pgg (ORCPT ); Fri, 28 Feb 2014 10:36:36 -0500 In-Reply-To: <1393601785-4631-1-git-send-email-socketcan@hartkopp.net> Sender: linux-can-owner@vger.kernel.org List-ID: To: linux-can@vger.kernel.org Cc: Oliver Hartkopp Additionally to have the second (data) bitrate available the data bitrate has to be greater or equal to the arbitration bitrate in CAN FD. Signed-off-by: Oliver Hartkopp --- drivers/net/can/dev.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index f3151d9..6fce037 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c @@ -643,6 +643,14 @@ int open_candev(struct net_device *dev) return -EINVAL; } + /* For CAN FD the data bitrate has to be >= the arbitration bitrate */ + if ((priv->ctrlmode & CAN_CTRLMODE_FD) && + (!priv->data_bittiming.bitrate || + (priv->data_bittiming.bitrate < priv->bittiming.bitrate))) { + netdev_err(dev, "incorrect/missing data bit-timing\n"); + return -EINVAL; + } + /* Switch carrier on if device was stopped while in bus-off state */ if (!netif_carrier_ok(dev)) netif_carrier_on(dev); -- 1.9.0