]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: light: gp2ap020a00f: Fix possible error swallow
authorEthan Tidmore <ethantidmore06@gmail.com>
Mon, 23 Feb 2026 03:40:15 +0000 (21:40 -0600)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 23 Feb 2026 21:15:54 +0000 (21:15 +0000)
Move error check into for loop in gp2ap020a00f_buffer_postenable() and
gp2ap020a00f_buffer_predisable(), this fixes a possible error swallow.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/light/gp2ap020a00f.c

index 6b283b52698fa15ee54022132f5725cc309d5805..64be9b8ca5e361e375ca2f52c54a692b9eb5c626 100644 (file)
@@ -1339,7 +1339,7 @@ static const struct iio_info gp2ap020a00f_info = {
 static int gp2ap020a00f_buffer_postenable(struct iio_dev *indio_dev)
 {
        struct gp2ap020a00f_data *data = iio_priv(indio_dev);
-       int i, err = 0;
+       int i, err;
 
        guard(mutex)(&data->lock);
 
@@ -1365,12 +1365,14 @@ static int gp2ap020a00f_buffer_postenable(struct iio_dev *indio_dev)
                        err = gp2ap020a00f_exec_cmd(data,
                                        GP2AP020A00F_CMD_TRIGGER_PROX_EN);
                        break;
+               default:
+                       err = -EINVAL;
+                       break;
                }
+               if (err)
+                       return err;
        }
 
-       if (err < 0)
-               return err;
-
        data->buffer = kmalloc(indio_dev->scan_bytes, GFP_KERNEL);
        if (!data->buffer)
                return -ENOMEM;
@@ -1381,7 +1383,7 @@ static int gp2ap020a00f_buffer_postenable(struct iio_dev *indio_dev)
 static int gp2ap020a00f_buffer_predisable(struct iio_dev *indio_dev)
 {
        struct gp2ap020a00f_data *data = iio_priv(indio_dev);
-       int i, err = 0;
+       int i, err;
 
        guard(mutex)(&data->lock);
 
@@ -1399,12 +1401,14 @@ static int gp2ap020a00f_buffer_predisable(struct iio_dev *indio_dev)
                        err = gp2ap020a00f_exec_cmd(data,
                                        GP2AP020A00F_CMD_TRIGGER_PROX_DIS);
                        break;
+               default:
+                       err = -EINVAL;
+                       break;
                }
+               if (err)
+                       return err;
        }
 
-       if (err)
-               return err;
-
        kfree(data->buffer);
        return 0;
 }