Message ID | 20201012194618.2170970-1-fparent@baylibre.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: adc: mediatek: fix unset field | expand |
On 12/10/2020 21:46, Fabien Parent wrote: > dev_comp field is used in a couple of places but it is never set. This > results in kernel oops when dereferencing a NULL pointer. Set the > `dev_comp` field correctly in the probe function. > > Fixes: 6d97024dce23 ("iio: adc: mediatek: mt6577-auxadc, add mt6765 support") > > Signed-off-by: Fabien Parent <fparent@baylibre.com> Ouch. Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> > --- > drivers/iio/adc/mt6577_auxadc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c > index ac415cb089cd..7bd48377cd79 100644 > --- a/drivers/iio/adc/mt6577_auxadc.c > +++ b/drivers/iio/adc/mt6577_auxadc.c > @@ -276,6 +276,8 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) > goto err_disable_clk; > } > > + adc_dev->dev_comp = of_device_get_match_data(&pdev->dev); > + > mutex_init(&adc_dev->lock); > > mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, >
On Tue, 13 Oct 2020 17:37:12 +0200 Matthias Brugger <matthias.bgg@gmail.com> wrote: > On 12/10/2020 21:46, Fabien Parent wrote: > > dev_comp field is used in a couple of places but it is never set. This > > results in kernel oops when dereferencing a NULL pointer. Set the > > `dev_comp` field correctly in the probe function. > > > > Fixes: 6d97024dce23 ("iio: adc: mediatek: mt6577-auxadc, add mt6765 support") > > > > Signed-off-by: Fabien Parent <fparent@baylibre.com> > > Ouch. > > Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> > > > --- > > drivers/iio/adc/mt6577_auxadc.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c > > index ac415cb089cd..7bd48377cd79 100644 > > --- a/drivers/iio/adc/mt6577_auxadc.c > > +++ b/drivers/iio/adc/mt6577_auxadc.c > > @@ -276,6 +276,8 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) > > goto err_disable_clk; > > } > > > > + adc_dev->dev_comp = of_device_get_match_data(&pdev->dev); > > + Could we switch this to device_get_match_data(&pdev->dev)? Whilst is unlikely this driver will used in a platform using ACPI, there is nothing inside the driver itself preventing this (which is good as no reason to do so!) My main motivation for this is to reduce the chances of cut and paste of the of_* functions in future driver. Also switch the headers to linux/property.h and linux/mod_devicetable.h to more tightly reflect what we are using in the driver. Thanks, Jonathan > > mutex_init(&adc_dev->lock); > > > > mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, > >
Hi Jonathan, On Sun, Oct 18, 2020 at 12:07 PM Jonathan Cameron <jic23@kernel.org> wrote: > > On Tue, 13 Oct 2020 17:37:12 +0200 > Matthias Brugger <matthias.bgg@gmail.com> wrote: > > > On 12/10/2020 21:46, Fabien Parent wrote: > > > dev_comp field is used in a couple of places but it is never set. This > > > results in kernel oops when dereferencing a NULL pointer. Set the > > > `dev_comp` field correctly in the probe function. > > > > > > Fixes: 6d97024dce23 ("iio: adc: mediatek: mt6577-auxadc, add mt6765 support") > > > > > > Signed-off-by: Fabien Parent <fparent@baylibre.com> > > > > Ouch. > > > > Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> > > > > > --- > > > drivers/iio/adc/mt6577_auxadc.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c > > > index ac415cb089cd..7bd48377cd79 100644 > > > --- a/drivers/iio/adc/mt6577_auxadc.c > > > +++ b/drivers/iio/adc/mt6577_auxadc.c > > > @@ -276,6 +276,8 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) > > > goto err_disable_clk; > > > } > > > > > > + adc_dev->dev_comp = of_device_get_match_data(&pdev->dev); > > > + > > Could we switch this to device_get_match_data(&pdev->dev)? > > Whilst is unlikely this driver will used in a platform using ACPI, there > is nothing inside the driver itself preventing this (which is good as no > reason to do so!) My main motivation for this is to reduce the chances > of cut and paste of the of_* functions in future driver. > > Also switch the headers to linux/property.h and linux/mod_devicetable.h > to more tightly reflect what we are using in the driver. I applied these changes in v2. > > Thanks, > > Jonathan > > > > mutex_init(&adc_dev->lock); > > > > > > mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, > > > >
diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c index ac415cb089cd..7bd48377cd79 100644 --- a/drivers/iio/adc/mt6577_auxadc.c +++ b/drivers/iio/adc/mt6577_auxadc.c @@ -276,6 +276,8 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) goto err_disable_clk; } + adc_dev->dev_comp = of_device_get_match_data(&pdev->dev); + mutex_init(&adc_dev->lock); mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
dev_comp field is used in a couple of places but it is never set. This results in kernel oops when dereferencing a NULL pointer. Set the `dev_comp` field correctly in the probe function. Fixes: 6d97024dce23 ("iio: adc: mediatek: mt6577-auxadc, add mt6765 support") Signed-off-by: Fabien Parent <fparent@baylibre.com> --- drivers/iio/adc/mt6577_auxadc.c | 2 ++ 1 file changed, 2 insertions(+)