|
@@ -642,6 +642,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);
|