staging: wfx: wfx_init_common() returns NULL on error
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Fri, 9 Oct 2020 17:13:03 +0000 (19:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Oct 2020 10:33:59 +0000 (12:33 +0200)
Smatch complains:

    bus_spi.c:228 wfx_spi_probe() warn: 'bus->core' could be an error pointer
    bus_sdio.c:221 wfx_sdio_probe() warn: 'bus->core' could be an error pointer

bus->core contains the result of wfx_init_common(). With this patch,
wfx_init_common() returns a valid pointer or NULL.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20201009171307.864608-5-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wfx/main.c

index a8dc2c0..e7bc198 100644 (file)
@@ -309,7 +309,7 @@ struct wfx_dev *wfx_init_common(struct device *dev,
        wdev->pdata.gpio_wakeup = devm_gpiod_get_optional(dev, "wakeup",
                                                          GPIOD_OUT_LOW);
        if (IS_ERR(wdev->pdata.gpio_wakeup))
-               return ERR_CAST(wdev->pdata.gpio_wakeup);
+               return NULL;
        if (wdev->pdata.gpio_wakeup)
                gpiod_set_consumer_name(wdev->pdata.gpio_wakeup, "wfx wakeup");