[PATCH net] net: stmmac: dwmac-rk: Ensure clk_phy doesn't contain invalid address

Chaoyi Chen chaoyi.chen at rock-chips.com
Thu Sep 4 04:03:10 PDT 2025


On 9/4/2025 6:58 PM, Russell King (Oracle) wrote:
> On Thu, Sep 04, 2025 at 03:12:24AM +0000, Yao Zi wrote:
>>   	if (plat->phy_node) {
>>   		bsp_priv->clk_phy = of_clk_get(plat->phy_node, 0);
>>   		ret = PTR_ERR_OR_ZERO(bsp_priv->clk_phy);
>> -		/* If it is not integrated_phy, clk_phy is optional */
>> +		/*
>> +		 * If it is not integrated_phy, clk_phy is optional. But we must
>> +		 * set bsp_priv->clk_phy to NULL if clk_phy isn't proivded, or
>> +		 * the error code could be wrongly taken as an invalid pointer.
>> +		 */
> I'm concerned by this. This code is getting the first clock from the DT
> description of the PHY. We don't know what type of PHY it is, or what
> the DT description of that PHY might suggest that the first clock would
> be.
>
> However, we're geting it and setting it to 50MHz. What if the clock is
> not what we think it is?

We only set integrated_phy to 50M, which are all known targets. For external PHYs, we do not perform frequency settings.



>
> I'm not sure we should be delving in to some other device's DT
> properties to then get resources that it _uses_ to then effectively
> take control those resources.
>
> I think we need way more detail on what's going on. Commit da114122b83
> merely stated:
>
>      For external phy, clk_phy should be optional, and some external phy
>      need the clock input from clk_phy. This patch adds support for setting
>      clk_phy for external phy.
>
> If the external PHY requires a clock supplied to it, shouldn't the PHY
> driver itself be getting that clock and setting it appropriately?
>



More information about the linux-arm-kernel mailing list