Re: [PATCH] leds: pca9532: fix device_node_continue.cocci warnings
From: Julia Lawall
Date: Fri Dec 30 2016 - 11:27:51 EST
On Fri, 30 Dec 2016, Jacek Anaszewski wrote:
> On 12/29/2016 10:39 PM, Julia Lawall wrote:
> >
> >
> > On Thu, 29 Dec 2016, Jacek Anaszewski wrote:
> >
> >> Hi Julia,
> >>
> >> This patch doesn't apply to current for-next branch
> >> of linux-leds.git.
> >
> > The information about where it comes from is below the ---. It's
> > automatically send to me by kbuild, so I don't know anything more than
> > that. I recall from the original message that the code was committed
> > around an hour ago.
>
> In mainline as well as in linux-next we have only the following patch
> touching pca9532_of_populate_pdata() (it adds the function):
>
> commit fa4191a609f219262a18dd8b02ab7dc30896b707
> Author: Phil Reid <preid@xxxxxxxxxxxxxxxxx>
> Date: Tue Jun 14 15:36:17 2016 +0800
>
> leds: pca9532: Add device tree support
>
> This patch adds basic device tree support for the pca9532 LEDs.
>
> Signed-off-by: Phil Reid <preid@xxxxxxxxxxxxxxxxx>
> Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
>
>
> It doesn't have the problems the kbuild detected in
> https://github.com/manabian/linux-lpc lpc18xx_43xx_devel.
> The git history for leds-pca9532.c in that repository is
> different from the one in mainline.
>
> I don't see a point in reporting problems in repositories
> other than mainline or linux-next.
I think you can let Fengguang know which trees you want monitored:
fengguang.wu@xxxxxxxxx
julia
>
> Best regards,
> Jacek Anaszewski
>
>
> >>
> >> On 12/29/2016 10:10 PM, Julia Lawall wrote:
> >>> Device node iterators put the previous value of the index variable, so an
> >>> explicit put causes a double put.
> >>>
> >>> Generated by: scripts/coccinelle/iterators/device_node_continue.cocci
> >>>
> >>> Signed-off-by: Julia Lawall <julia.lawall@xxxxxxx>
> >>> Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
> >>> ---
> >>>
> >>> I haven't looked at the context in detail, but given the rule, I assume
> >>> that there is an iterator, such as for_each_child_of_node, and these
> >>> iterators do a put on each iteration, so none is needed in the loop body.
> >>>
> >>> tree: https://github.com/manabian/linux-lpc lpc18xx_43xx_devel
> >>> head: 9ee5f58bbb16c08da223c4b4933457e0eb72268d
> >>> commit: c58957273142be779f62c17fae389ce9c134139f [44/55] leds: pca9532: use
> >>>
> >>> leds-pca9532.c | 3 ---
> >>> 1 file changed, 3 deletions(-)
> >>>
> >>> --- a/drivers/leds/leds-pca9532.c
> >>> +++ b/drivers/leds/leds-pca9532.c
> >>> @@ -473,7 +473,6 @@ pca9532_of_populate_pdata(struct device
> >>>
> >>> res = of_property_read_u32(child, "reg", ®);
> >>> if ((res != 0) || (reg >= maxleds)) {
> >>> - of_node_put(child);
> >>> continue;
> >>> }
> >>>
> >>> @@ -484,8 +483,6 @@ pca9532_of_populate_pdata(struct device
> >>> of_property_read_u32(child, "type", &pdata->leds[reg].type);
> >>> of_property_read_string(child, "linux,default-trigger",
> >>> &pdata->leds[reg].default_trigger);
> >>> -
> >>> - of_node_put(child);
> >>> }
> >>>
> >>> return pdata;
> >>>
> >>
> >>
> >
>
> --
> Best regards,
> Jacek Anaszewski
>