mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
iio: light: gp2ap020a00f: correct return type to int
The function gp2ap020a00f_get_thresh_reg() can return -EINVAL in its error path. Yet, the function has return type of u8. Added error checking for gp2ap020a00f_get_thresh_reg() return value. Detected by Smatch: drivers/iio/light/gp2ap020a00f.c:1013 gp2ap020a00f_get_thresh_reg() warn: signedness bug returning '(-22)' Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
34be156c88
commit
b969e76585
|
|
@ -993,8 +993,8 @@ static irqreturn_t gp2ap020a00f_trigger_handler(int irq, void *data)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static u8 gp2ap020a00f_get_thresh_reg(const struct iio_chan_spec *chan,
|
||||
enum iio_event_direction event_dir)
|
||||
static int gp2ap020a00f_get_thresh_reg(const struct iio_chan_spec *chan,
|
||||
enum iio_event_direction event_dir)
|
||||
{
|
||||
switch (chan->type) {
|
||||
case IIO_PROXIMITY:
|
||||
|
|
@ -1024,11 +1024,14 @@ static int gp2ap020a00f_write_event_val(struct iio_dev *indio_dev,
|
|||
struct gp2ap020a00f_data *data = iio_priv(indio_dev);
|
||||
bool event_en = false;
|
||||
u8 thresh_val_id;
|
||||
u8 thresh_reg_l;
|
||||
int thresh_reg_l;
|
||||
|
||||
guard(mutex)(&data->lock);
|
||||
|
||||
thresh_reg_l = gp2ap020a00f_get_thresh_reg(chan, dir);
|
||||
if (thresh_reg_l < 0)
|
||||
return thresh_reg_l;
|
||||
|
||||
thresh_val_id = GP2AP020A00F_THRESH_VAL_ID(thresh_reg_l);
|
||||
if (thresh_val_id > GP2AP020A00F_THRESH_PH)
|
||||
return -EINVAL;
|
||||
|
|
@ -1070,11 +1073,13 @@ static int gp2ap020a00f_read_event_val(struct iio_dev *indio_dev,
|
|||
int *val, int *val2)
|
||||
{
|
||||
struct gp2ap020a00f_data *data = iio_priv(indio_dev);
|
||||
u8 thresh_reg_l;
|
||||
int thresh_reg_l;
|
||||
|
||||
guard(mutex)(&data->lock);
|
||||
|
||||
thresh_reg_l = gp2ap020a00f_get_thresh_reg(chan, dir);
|
||||
if (thresh_reg_l < 0)
|
||||
return thresh_reg_l;
|
||||
if (thresh_reg_l > GP2AP020A00F_PH_L_REG)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user