Re: [PATCH v2] iio: dac: mcp47feb02: reject out-of-range raw values
From: Ariana.Lazar
Date: Tue Nov 03 2026 - 08:19:02 EST
Hi Jonathan,
I tested this patch on both I2C and SPI parts and found no issues.
Thank you David for your contribution.
Tested-by: Ariana Lazar <ariana.lazar@xxxxxxxxxxxxx>
Best regards,
Ariana
>
> Good catch but given the fix will go in the same cycle as the driver
> I've dropped the table tag.
>
> This is more about how I choose to queue this up than anything could
> know. I might have held it for next merge window in which case
> it would have wanted the stable tag.
>
> Applied to the fixes-togreg branch of iio.git. I've just rebased
> that
> to reflect the char-misc pull going into Linus' tree (which was
> needed
> to get the driver for this patch). I'll rebase again on rc1 once
> available.
>
> Given I'll be rebasing anyway, extra tags welcome (and I didn't hold
> off on applying as I might have done if aiming for no rebasing).
> Ariana,
> please take a look at this one.
>
> Thanks,
>
> Jonathan
>
>
>
> > Reviewed-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
> > Signed-off-by: David Carlier <devnexen@xxxxxxxxx>
> > ---
> > Found by LLM-assisted code inspection, reviewed and verified by
> > hand.
> > Build tested with W=1 (=m and =y) only; no hardware was available
> > for
> > runtime testing.
> >
> > v2:
> > - Use GENMASK() for the upper bound so it is safe up to 32 bits
> > (Andy)
> > - Drop the Assisted-by tag, removed from the docs in 1e035297ffda
> > (Joshua)
> > - Move the testing note below the --- (Joshua)
> >
> > v1:
> > https://lore.kernel.org/all/20261024214423.865635-1-devnexen@xxxxxxxxx/
> > ---
> > drivers/iio/dac/mcp47feb02-core.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/iio/dac/mcp47feb02-core.c
> > b/drivers/iio/dac/mcp47feb02-core.c
> > index 88bffbab0854..b5a2ac4a2e67 100644
> > --- a/drivers/iio/dac/mcp47feb02-core.c
> > +++ b/drivers/iio/dac/mcp47feb02-core.c
> > @@ -696,6 +696,9 @@ static int mcp47feb02_write_raw(struct iio_dev
> > *indio_dev, struct iio_chan_spec
> >
> > switch (mask) {
> > case IIO_CHAN_INFO_RAW:
> > + if (val < 0 || val > GENMASK(data->chip_features-
> > >resolution - 1, 0))
> > + return -EINVAL;
> > +
> > ret = regmap_write(data->regmap, REG_ADDR(ch-
> > >address), val);
> > if (ret)
> > return ret;
>