[Adding Marek] On Wed, Nov 19, 2014 at 8:19 PM, Stefan Wahren <stefan.wahren@xxxxxxxx> wrote: > The devicetree binding for mxs-lradc defines ranges for the > touchscreen properties. In order to avoid unexpected behavior like > division by zero, we better check these ranges during probe and > abort in error case. > > Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx> > --- > drivers/staging/iio/adc/mxs-lradc.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c > index 6757f10..57c3cf6 100644 > --- a/drivers/staging/iio/adc/mxs-lradc.c > +++ b/drivers/staging/iio/adc/mxs-lradc.c > @@ -1500,16 +1500,36 @@ static int mxs_lradc_probe_touchscreen(struct mxs_lradc *lradc, > if (ret == 0) > lradc->over_sample_cnt = adapt; > > + if (!lradc->over_sample_cnt || lradc->over_sample_cnt > 0x1f) { > + dev_err(lradc->dev, "Invalid sample count (%u)\n", > + lradc->over_sample_cnt); > + return -EINVAL; > + } > + > lradc->over_sample_delay = 2; > ret = of_property_read_u32(lradc_node, "fsl,ave-delay", &adapt); > if (ret == 0) > lradc->over_sample_delay = adapt; > > + if (!lradc->over_sample_delay || > + lradc->over_sample_delay > LRADC_DELAY_DELAY_MASK) { > + dev_err(lradc->dev, "Invalid sample delay (%u)\n", > + lradc->over_sample_delay); > + return -EINVAL; > + } > + > lradc->settling_delay = 10; > ret = of_property_read_u32(lradc_node, "fsl,settling", &adapt); > if (ret == 0) > lradc->settling_delay = adapt; > > + if (!lradc->settling_delay || > + lradc->settling_delay > LRADC_DELAY_DELAY_MASK) { > + dev_err(lradc->dev, "Invalid settling delay (%u)\n", > + lradc->settling_delay); > + return -EINVAL; > + } > + Reviewed-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html