* soc: xilinx: vcu: issue with 2nd null check on pointer divider
@ 2025-05-08 10:21 Colin King (gmail)
2025-05-08 10:57 ` Michael Tretter
0 siblings, 1 reply; 3+ messages in thread
From: Colin King (gmail) @ 2025-05-08 10:21 UTC (permalink / raw)
To: Michael Tretter, linux-arm-kernel@lists.infradead.org
Cc: Stephen Boyd, Michal Simek, linux-kernel@vger.kernel.org
[-- Attachment #1.1.1: Type: text/plain, Size: 987 bytes --]
Hi,
There seems to be an issue with the following function with the second
check on if (!divider). Firstly this is redundant code since divider has
already been null checked, so I suspect it should be instead if (!mux)
but I'm unsure if this is correct since the call to
clk_hw_unregister_divider is not made. Also if mux is null, isn't the
call to clk_hw_unregister_mux() problematic as a null pointer is being
passed to it.
static void xvcu_clk_hw_unregister_leaf(struct clk_hw *hw)
{
struct clk_hw *gate = hw;
struct clk_hw *divider;
struct clk_hw *mux;
if (!gate)
return;
divider = clk_hw_get_parent(gate);
clk_hw_unregister_gate(gate);
if (!divider)
return;
mux = clk_hw_get_parent(divider);
clk_hw_unregister_mux(mux);
if (!divider)
return;
clk_hw_unregister_divider(divider);
}
Colin
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 4901 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: soc: xilinx: vcu: issue with 2nd null check on pointer divider
2025-05-08 10:21 soc: xilinx: vcu: issue with 2nd null check on pointer divider Colin King (gmail)
@ 2025-05-08 10:57 ` Michael Tretter
2025-05-08 11:04 ` Colin King (gmail)
0 siblings, 1 reply; 3+ messages in thread
From: Michael Tretter @ 2025-05-08 10:57 UTC (permalink / raw)
To: Colin King (gmail)
Cc: linux-arm-kernel@lists.infradead.org, Stephen Boyd, Michal Simek,
linux-kernel@vger.kernel.org, kernel
Hi Colin,
On Thu, 08 May 2025 11:21:05 +0100, Colin King (gmail) wrote:
> There seems to be an issue with the following function with the second check
> on if (!divider). Firstly this is redundant code since divider has
> already been null checked, so I suspect it should be instead if (!mux) but
> I'm unsure if this is correct since the call to clk_hw_unregister_divider is
> not made. Also if mux is null, isn't the call to clk_hw_unregister_mux()
> problematic as a null pointer is being passed to it.
>
> static void xvcu_clk_hw_unregister_leaf(struct clk_hw *hw)
> {
> struct clk_hw *gate = hw;
> struct clk_hw *divider;
> struct clk_hw *mux;
>
> if (!gate)
> return;
>
> divider = clk_hw_get_parent(gate);
> clk_hw_unregister_gate(gate);
> if (!divider)
> return;
>
> mux = clk_hw_get_parent(divider);
> clk_hw_unregister_mux(mux);
> if (!divider)
> return;
>
> clk_hw_unregister_divider(divider);
> }
I sent a patch [0] to rewrite the function and make it more readable a
while ago. Unfortunately, there wasn't any reaction to the patch, and
then I forgot about it.
Michael
[0] https://lore.kernel.org/linux-arm-kernel/20210318144230.3438009-1-m.tretter@pengutronix.de/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: soc: xilinx: vcu: issue with 2nd null check on pointer divider
2025-05-08 10:57 ` Michael Tretter
@ 2025-05-08 11:04 ` Colin King (gmail)
0 siblings, 0 replies; 3+ messages in thread
From: Colin King (gmail) @ 2025-05-08 11:04 UTC (permalink / raw)
To: Michael Tretter
Cc: linux-arm-kernel@lists.infradead.org, Stephen Boyd, Michal Simek,
linux-kernel@vger.kernel.org, kernel
[-- Attachment #1.1.1: Type: text/plain, Size: 1629 bytes --]
Hi Michael,
thanks for the update, I forgot I already reported this back in 2021(!).
Perhaps the upstream folk can apply your patch oneday :-/
Colin
On 08/05/2025 11:57, Michael Tretter wrote:
> Hi Colin,
>
> On Thu, 08 May 2025 11:21:05 +0100, Colin King (gmail) wrote:
>> There seems to be an issue with the following function with the second check
>> on if (!divider). Firstly this is redundant code since divider has
>> already been null checked, so I suspect it should be instead if (!mux) but
>> I'm unsure if this is correct since the call to clk_hw_unregister_divider is
>> not made. Also if mux is null, isn't the call to clk_hw_unregister_mux()
>> problematic as a null pointer is being passed to it.
>>
>> static void xvcu_clk_hw_unregister_leaf(struct clk_hw *hw)
>> {
>> struct clk_hw *gate = hw;
>> struct clk_hw *divider;
>> struct clk_hw *mux;
>>
>> if (!gate)
>> return;
>>
>> divider = clk_hw_get_parent(gate);
>> clk_hw_unregister_gate(gate);
>> if (!divider)
>> return;
>>
>> mux = clk_hw_get_parent(divider);
>> clk_hw_unregister_mux(mux);
>> if (!divider)
>> return;
>>
>> clk_hw_unregister_divider(divider);
>> }
>
> I sent a patch [0] to rewrite the function and make it more readable a
> while ago. Unfortunately, there wasn't any reaction to the patch, and
> then I forgot about it.
>
> Michael
>
> [0] https://lore.kernel.org/linux-arm-kernel/20210318144230.3438009-1-m.tretter@pengutronix.de/
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 4901 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-05-08 11:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-08 10:21 soc: xilinx: vcu: issue with 2nd null check on pointer divider Colin King (gmail)
2025-05-08 10:57 ` Michael Tretter
2025-05-08 11:04 ` Colin King (gmail)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).