soc: xilinx: vcu: issue with 2nd null check on pointer divider

From: Colin King (gmail)
Date: Thu May 08 2025 - 06:21:31 EST


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: OpenPGP_0x68C287DFC6A80226.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature