staging: iio: resolver: ad2s1210: fix use before initialization
authorDavid Lechner <dlechner@baylibre.com>
Fri, 29 Sep 2023 17:23:07 +0000 (12:23 -0500)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 30 Sep 2023 14:25:15 +0000 (15:25 +0100)
This fixes a use before initialization in ad2s1210_probe(). The
ad2s1210_setup_gpios() function uses st->sdev but it was being called
before this field was initialized.

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://lore.kernel.org/r/20230929-ad2s1210-mainline-v3-2-fa4364281745@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/staging/iio/resolver/ad2s1210.c

index f695ca0547e4cb651ffe5c6dc4740e0d29b9af61..3f08b59f4e1963551fa4bd30ccf6912c848dd341 100644 (file)
@@ -658,9 +658,6 @@ static int ad2s1210_probe(struct spi_device *spi)
        if (!indio_dev)
                return -ENOMEM;
        st = iio_priv(indio_dev);
-       ret = ad2s1210_setup_gpios(st);
-       if (ret < 0)
-               return ret;
 
        spi_set_drvdata(spi, indio_dev);
 
@@ -671,6 +668,10 @@ static int ad2s1210_probe(struct spi_device *spi)
        st->resolution = 12;
        st->fexcit = AD2S1210_DEF_EXCIT;
 
+       ret = ad2s1210_setup_gpios(st);
+       if (ret < 0)
+               return ret;
+
        indio_dev->info = &ad2s1210_info;
        indio_dev->modes = INDIO_DIRECT_MODE;
        indio_dev->channels = ad2s1210_channels;