]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
can: tcan4x5x: fix power regulator retrieval during probe
authorBrett Werling <brett.werling@garmin.com>
Thu, 12 Jun 2025 19:18:25 +0000 (14:18 -0500)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 17 Jun 2025 15:47:23 +0000 (17:47 +0200)
Fixes the power regulator retrieval in tcan4x5x_can_probe() by ensuring
the regulator pointer is not set to NULL in the successful return from
devm_regulator_get_optional().

Fixes: 3814ca3a10be ("can: tcan4x5x: tcan4x5x_can_probe(): turn on the power before parsing the config")
Signed-off-by: Brett Werling <brett.werling@garmin.com>
Link: https://patch.msgid.link/20250612191825.3646364-1-brett.werling@garmin.com
Cc: stable@vger.kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/m_can/tcan4x5x-core.c

index e5c162f8c589b2c75c51cd8a994fc93ab507b9dc..8edaa339d590b600301129b72ef3bcb64ad874ed 100644 (file)
@@ -411,10 +411,11 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
        priv = cdev_to_priv(mcan_class);
 
        priv->power = devm_regulator_get_optional(&spi->dev, "vsup");
-       if (PTR_ERR(priv->power) == -EPROBE_DEFER) {
-               ret = -EPROBE_DEFER;
-               goto out_m_can_class_free_dev;
-       } else {
+       if (IS_ERR(priv->power)) {
+               if (PTR_ERR(priv->power) == -EPROBE_DEFER) {
+                       ret = -EPROBE_DEFER;
+                       goto out_m_can_class_free_dev;
+               }
                priv->power = NULL;
        }