Re: [PATCH] net: phy: add missing of_node_put before return

From: 王擎
Date: Mon Dec 13 2021 - 21:14:20 EST



>> From: Wang Qing <wangqing@xxxxxxxx>
>>
>> Fix following coccicheck warning:
>> WARNING: Function "for_each_available_child_of_node"
>> should have of_node_put() before return.
>>
>> Early exits from for_each_available_child_of_node should decrement the
>> node reference counter.
>
>Most *definitely* NAK. Coccicheck is most definitely wrong on this one,
>and we will probably need some way to tell people not to believe
>coccicheck on this.
>
>In this path, the DT node is assigned to a struct device. This _must_
>be reference counted. device_set_node() does not increment the
>reference count, nor does of_fwnode_handle(). The reference count
>here is passed from this code over to the struct device.
>
>Adding an of_node_put() will break this.
>
>This must _never_ be "fixed" no matter how much coccicheck complains,
>as fixing the warning _will_ introduce a refcounting bug.
>
>I'll send a patch adding a comment to this effect.
>
>Thanks.

Yes, you are right. Maybe we can add a judgment in this cocci on which exit as expected
or abnormally, only the latter needs to be reported.

Thanks,
Qing
>
>--
>RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
>FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!