Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1682961 > unrolled thread

[PATCH] pwm: sun4i: add NULL check on of_match_device() return value

Started by"Gustavo A. R. Silva" <garsilva@embeddedor.com>
First post2017-07-07 08:50 +0200
Last post2017-07-10 21:30 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] pwm: sun4i: add NULL check on of_match_device() return value "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-07-07 08:50 +0200
    Re: [PATCH] pwm: sun4i: add NULL check on of_match_device() return value Chen-Yu Tsai <wens@csie.org> - 2017-07-07 09:20 +0200
      Re: [PATCH] pwm: sun4i: add NULL check on of_match_device() return  value Thierry Reding <thierry.reding@gmail.com> - 2017-07-07 11:40 +0200
        Re: [PATCH] pwm: sun4i: add NULL check on of_match_device() return  value "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-07-10 21:30 +0200

#1682961 — [PATCH] pwm: sun4i: add NULL check on of_match_device() return value

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-07-07 08:50 +0200
Subject[PATCH] pwm: sun4i: add NULL check on of_match_device() return value
Message-ID<u0vfs-5W-23@gated-at.bofh.it>
Check return value from call to of_match_device()
in order to prevent a NULL pointer dereference.

In case of NULL print error message and return -ENODEV

Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
 drivers/pwm/pwm-sun4i.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
index 1284ffa..295ca19 100644
--- a/drivers/pwm/pwm-sun4i.c
+++ b/drivers/pwm/pwm-sun4i.c
@@ -321,6 +321,10 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
 	const struct of_device_id *match;
 
 	match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);
+	if (!match) {
+		dev_err(&pdev->dev, "failed to match device\n");
+		return -ENODEV;
+	}
 
 	pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL);
 	if (!pwm)
-- 
2.5.0

[toc] | [next] | [standalone]


#1682973

FromChen-Yu Tsai <wens@csie.org>
Date2017-07-07 09:20 +0200
Message-ID<u0vIt-ww-7@gated-at.bofh.it>
In reply to#1682961
On Fri, Jul 7, 2017 at 2:39 PM, Gustavo A. R. Silva
<garsilva@embeddedor.com> wrote:
> Check return value from call to of_match_device()
> in order to prevent a NULL pointer dereference.
>
> In case of NULL print error message and return -ENODEV
>
> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
> ---
>  drivers/pwm/pwm-sun4i.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
> index 1284ffa..295ca19 100644
> --- a/drivers/pwm/pwm-sun4i.c
> +++ b/drivers/pwm/pwm-sun4i.c
> @@ -321,6 +321,10 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
>         const struct of_device_id *match;
>
>         match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);

AFAIK this simply can not and should not fail with a device tree
only driver with properly populated of_device_id tables.

ChenYu

> +       if (!match) {
> +               dev_err(&pdev->dev, "failed to match device\n");
> +               return -ENODEV;
> +       }
>
>         pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL);
>         if (!pwm)
> --
> 2.5.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

[toc] | [prev] | [next] | [standalone]


#1683076 — Re: [PATCH] pwm: sun4i: add NULL check on of_match_device() return value

FromThierry Reding <thierry.reding@gmail.com>
Date2017-07-07 11:40 +0200
SubjectRe: [PATCH] pwm: sun4i: add NULL check on of_match_device() return value
Message-ID<u0xTX-24L-5@gated-at.bofh.it>
In reply to#1682973

[Multipart message — attachments visible in raw view] — view raw

On Fri, Jul 07, 2017 at 03:16:23PM +0800, Chen-Yu Tsai wrote:
> On Fri, Jul 7, 2017 at 2:39 PM, Gustavo A. R. Silva
> <garsilva@embeddedor.com> wrote:
> > Check return value from call to of_match_device()
> > in order to prevent a NULL pointer dereference.
> >
> > In case of NULL print error message and return -ENODEV
> >
> > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
> > ---
> >  drivers/pwm/pwm-sun4i.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
> > index 1284ffa..295ca19 100644
> > --- a/drivers/pwm/pwm-sun4i.c
> > +++ b/drivers/pwm/pwm-sun4i.c
> > @@ -321,6 +321,10 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
> >         const struct of_device_id *match;
> >
> >         match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);
> 
> AFAIK this simply can not and should not fail with a device tree
> only driver with properly populated of_device_id tables.

Technically this could happen if someone manually created the platform
device. In that case the core will try to match by name if there is no
device node to use for a match against the list of of_device_ids.

In my opinion it's best to let things crash in this situation to make
it really obvious that people have done something wrong.

Thierry

[toc] | [prev] | [next] | [standalone]


#1684595 — Re: [PATCH] pwm: sun4i: add NULL check on of_match_device() return value

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-07-10 21:30 +0200
SubjectRe: [PATCH] pwm: sun4i: add NULL check on of_match_device() return value
Message-ID<u1MxA-Ey-3@gated-at.bofh.it>
In reply to#1683076
Hi all,

Quoting Thierry Reding <thierry.reding@gmail.com>:

> On Fri, Jul 07, 2017 at 03:16:23PM +0800, Chen-Yu Tsai wrote:
>> On Fri, Jul 7, 2017 at 2:39 PM, Gustavo A. R. Silva
>> <garsilva@embeddedor.com> wrote:
>> > Check return value from call to of_match_device()
>> > in order to prevent a NULL pointer dereference.
>> >
>> > In case of NULL print error message and return -ENODEV
>> >
>> > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
>> > ---
>> >  drivers/pwm/pwm-sun4i.c | 4 ++++
>> >  1 file changed, 4 insertions(+)
>> >
>> > diff --git a/drivers/pwm/pwm-sun4i.c b/drivers/pwm/pwm-sun4i.c
>> > index 1284ffa..295ca19 100644
>> > --- a/drivers/pwm/pwm-sun4i.c
>> > +++ b/drivers/pwm/pwm-sun4i.c
>> > @@ -321,6 +321,10 @@ static int sun4i_pwm_probe(struct  
>> platform_device *pdev)
>> >         const struct of_device_id *match;
>> >
>> >         match = of_match_device(sun4i_pwm_dt_ids, &pdev->dev);
>>
>> AFAIK this simply can not and should not fail with a device tree
>> only driver with properly populated of_device_id tables.
>
> Technically this could happen if someone manually created the platform
> device. In that case the core will try to match by name if there is no
> device node to use for a match against the list of of_device_ids.
>
> In my opinion it's best to let things crash in this situation to make
> it really obvious that people have done something wrong.
>

I get it.

Thanks for clarifying.
--
Gustavo A. R. Silva

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web