2014-06-28 17:24:13

by Himangi Saraogi

[permalink] [raw]
Subject: [PATCH] clk: sunxi: fix devm_ioremap_resource error detection code

devm_ioremap_resource returns an ERR_PTR value, not NULL, on failure.

A simplified version of the semantic match that finds this problem is as
follows:

// <smpl>
@@
expression e,e1;
statement S;
@@

*e = devm_ioremap_resource(...);
if (!e1) S

// </smpl>

Signed-off-by: Himangi Saraogi <[email protected]>
Acked-by: Julia Lawall <[email protected]>
---
drivers/clk/sunxi/clk-sun6i-apb0-gates.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/sunxi/clk-sun6i-apb0-gates.c b/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
index 44cd27c..670f90d 100644
--- a/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
+++ b/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
@@ -29,7 +29,7 @@ static int sun6i_a31_apb0_gates_clk_probe(struct platform_device *pdev)

r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
reg = devm_ioremap_resource(&pdev->dev, r);
- if (!reg)
+ if (IS_ERR(reg))
return PTR_ERR(reg);

clk_parent = of_clk_get_parent_name(np, 0);
--
1.9.1


2014-06-28 21:38:37

by Emilio López

[permalink] [raw]
Subject: Re: [PATCH] clk: sunxi: fix devm_ioremap_resource error detection code

Hi,

El 28/06/14 14:58, Boris BREZILLON escribi?:
> Hello,
>
> On 28/06/2014 19:23, Himangi Saraogi wrote:
>> devm_ioremap_resource returns an ERR_PTR value, not NULL, on failure.
>>
>> A simplified version of the semantic match that finds this problem is as
>> follows:
>>
>> // <smpl>
>> @@
>> expression e,e1;
>> statement S;
>> @@
>>
>> *e = devm_ioremap_resource(...);
>> if (!e1) S
>>
>> // </smpl>
>> Signed-off-by: Himangi Saraogi<[email protected]>
>> Acked-by: Julia Lawall<[email protected]>
>> ---
>> drivers/clk/sunxi/clk-sun6i-apb0-gates.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/clk/sunxi/clk-sun6i-apb0-gates.c b/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
>> index 44cd27c..670f90d 100644
>> --- a/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
>> +++ b/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
>> @@ -29,7 +29,7 @@ static int sun6i_a31_apb0_gates_clk_probe(struct platform_device *pdev)
>>
>> r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> reg = devm_ioremap_resource(&pdev->dev, r);
>> - if (!reg)
>> + if (IS_ERR(reg))
>> return PTR_ERR(reg);
>>
>> clk_parent = of_clk_get_parent_name(np, 0);
>
> Oops, one more mistake in testing devm_ioremap_resource return code (I
> always mix devm_ioremap_resource and devm_request_and_ioremap behaviours).
>
> Sorry for the inconvenience, and of course, you have my:
>
> Acked-by Boris BREZILLON <[email protected]>

Mike, do you want to take this directly for the -rc cycle, or should I
queue it for 3.17? Please let me know.

Cheers,

Emilio

2014-07-02 06:41:12

by Mike Turquette

[permalink] [raw]
Subject: Re: [PATCH] clk: sunxi: fix devm_ioremap_resource error detection code

Quoting Emilio López (2014-06-28 14:38:26)
> Hi,
>
> El 28/06/14 14:58, Boris BREZILLON escribió:
> > Hello,
> >
> > On 28/06/2014 19:23, Himangi Saraogi wrote:
> >> devm_ioremap_resource returns an ERR_PTR value, not NULL, on failure.
> >>
> >> A simplified version of the semantic match that finds this problem is as
> >> follows:
> >>
> >> // <smpl>
> >> @@
> >> expression e,e1;
> >> statement S;
> >> @@
> >>
> >> *e = devm_ioremap_resource(...);
> >> if (!e1) S
> >>
> >> // </smpl>
> >> Signed-off-by: Himangi Saraogi<[email protected]>
> >> Acked-by: Julia Lawall<[email protected]>
> >> ---
> >> drivers/clk/sunxi/clk-sun6i-apb0-gates.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/clk/sunxi/clk-sun6i-apb0-gates.c b/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
> >> index 44cd27c..670f90d 100644
> >> --- a/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
> >> +++ b/drivers/clk/sunxi/clk-sun6i-apb0-gates.c
> >> @@ -29,7 +29,7 @@ static int sun6i_a31_apb0_gates_clk_probe(struct platform_device *pdev)
> >>
> >> r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >> reg = devm_ioremap_resource(&pdev->dev, r);
> >> - if (!reg)
> >> + if (IS_ERR(reg))
> >> return PTR_ERR(reg);
> >>
> >> clk_parent = of_clk_get_parent_name(np, 0);
> >
> > Oops, one more mistake in testing devm_ioremap_resource return code (I
> > always mix devm_ioremap_resource and devm_request_and_ioremap behaviours).
> >
> > Sorry for the inconvenience, and of course, you have my:
> >
> > Acked-by Boris BREZILLON <[email protected]>
>
> Mike, do you want to take this directly for the -rc cycle, or should I
> queue it for 3.17? Please let me know.

I've picked it for the current -rc cycle.

Thanks,
Mike

>
> Cheers,
>
> Emilio