linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* 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).