[PATCH v5 05/10] iio: light: gp2ap020a00f: Fix possible error swallow

From: Ethan Tidmore

Date: Sun Feb 22 2026 - 22:42:25 EST


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@xxxxxxxxxxxxxxx>
Signed-off-by: Ethan Tidmore <ethantidmore06@xxxxxxxxx>
---
v5:
- Split this patch from the patch number 4, to keep bug fix separate
from style fix.

drivers/iio/light/gp2ap020a00f.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/iio/light/gp2ap020a00f.c b/drivers/iio/light/gp2ap020a00f.c
index 6b283b52698f..d2156e133b75 100644
--- a/drivers/iio/light/gp2ap020a00f.c
+++ b/drivers/iio/light/gp2ap020a00f.c
@@ -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);

@@ -1366,11 +1366,10 @@ static int gp2ap020a00f_buffer_postenable(struct iio_dev *indio_dev)
GP2AP020A00F_CMD_TRIGGER_PROX_EN);
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 +1380,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);

@@ -1400,11 +1399,10 @@ static int gp2ap020a00f_buffer_predisable(struct iio_dev *indio_dev)
GP2AP020A00F_CMD_TRIGGER_PROX_DIS);
break;
}
+ if (err)
+ return err;
}

- if (err)
- return err;
-
kfree(data->buffer);
return 0;
}
--
2.53.0