]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi: Fix potential uninitialized variable in probe()
authorDan Carpenter <dan.carpenter@linaro.org>
Mon, 24 Nov 2025 07:56:01 +0000 (10:56 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 24 Nov 2025 15:11:55 +0000 (15:11 +0000)
If the device tree is messed up, then potentially the "protocol" string
could potentially be uninitialized.  The property is supposed to default
to "motorola" so if the of_property_read_string() function returns
-EINVAL then default to "motorola".

Fixes: 059f545832be ("spi: add support for microchip "soft" spi controller")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Prajna Rajendra Kumar <prajna.rajendrakumar@microchip.com>
Link: https://patch.msgid.link/aSQPkfkiJ0w-FJMW@stanley.mountain
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-microchip-core-spi.c

index b8738190cdcbdd15e179603f2d65d1b08cb333ac..16e0885474a0c01deaaf5073454e54cde2449fd4 100644 (file)
@@ -295,10 +295,10 @@ static int mchp_corespi_transfer_one(struct spi_controller *host,
 
 static int mchp_corespi_probe(struct platform_device *pdev)
 {
+       const char *protocol = "motorola";
        struct spi_controller *host;
        struct mchp_corespi *spi;
        struct resource *res;
-       const char *protocol;
        u32 num_cs, mode, frame_size;
        bool assert_ssel;
        int ret = 0;
@@ -320,6 +320,8 @@ static int mchp_corespi_probe(struct platform_device *pdev)
         */
        ret = of_property_read_string(pdev->dev.of_node, "microchip,protocol-configuration",
                                      &protocol);
+       if (ret && ret != -EINVAL)
+               return dev_err_probe(&pdev->dev, ret, "Error reading protocol-configuration\n");
        if (strcmp(protocol, "motorola") != 0)
                return dev_err_probe(&pdev->dev, -EINVAL,
                                     "CoreSPI: protocol '%s' not supported by this driver\n",