]> git.itanic.dy.fi Git - linux-stable/commitdiff
can: dev: register_candev(): bail out if both fixed bit rates and bit timing constant...
authorMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 27 Sep 2022 11:33:44 +0000 (13:33 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 6 Feb 2023 12:57:26 +0000 (13:57 +0100)
The CAN driver framework supports either fixed bit rates or bit timing
constants. Bail out during driver registration if both are given.

Link: https://lore.kernel.org/all/20230202110854.2318594-7-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/dev/dev.c

index 3b51055be40e6089cda2ced6f2ebe2712ac57c36..7f9334a8af50002413b3e45856ecbe8971bcc9ba 100644 (file)
@@ -530,6 +530,11 @@ int register_candev(struct net_device *dev)
        if (!priv->data_bitrate_const != !priv->data_bitrate_const_cnt)
                return -EINVAL;
 
+       /* We only support either fixed bit rates or bit timing const. */
+       if ((priv->bitrate_const || priv->data_bitrate_const) &&
+           (priv->bittiming_const || priv->data_bittiming_const))
+               return -EINVAL;
+
        if (!can_bittiming_const_valid(priv->bittiming_const) ||
            !can_bittiming_const_valid(priv->data_bittiming_const))
                return -EINVAL;