iio: ltc2983: fail probe if no channels are given
authorNuno Sá <nuno.sa@analog.com>
Wed, 25 Aug 2021 08:41:49 +0000 (10:41 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 14 Sep 2021 11:00:32 +0000 (12:00 +0100)
If there are no channels defined in the devicetree, there's no point in
probing the device. We were actually requesting a zero sized 'kmalloc'
array but since we were not touching the ZERO_SIZE_PTR afterwards,
nothing bad was actually happening. Hence this is not really a fix but
rather an improvement.

Reviewed-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20210825084149.11587-2-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/temperature/ltc2983.c

index 22e6a26..301c3f1 100644 (file)
@@ -1275,6 +1275,11 @@ static int ltc2983_parse_dt(struct ltc2983_data *st)
                             &st->filter_notch_freq);
 
        st->num_channels = of_get_available_child_count(dev->of_node);
+       if (!st->num_channels) {
+               dev_err(&st->spi->dev, "At least one channel must be given!");
+               return -EINVAL;
+       }
+
        st->sensors = devm_kcalloc(dev, st->num_channels, sizeof(*st->sensors),
                                   GFP_KERNEL);
        if (!st->sensors)