[PATCH v4 2/6] phy: core: Fix that API devm_of_phy_provider_unregister() fails to unregister the phy provider

Johan Hovold johan at kernel.org
Tue Nov 5 09:15:04 PST 2024


On Sat, Nov 02, 2024 at 11:53:44AM +0800, Zijun Hu wrote:
> From: Zijun Hu <quic_zijuhu at quicinc.com>
> 
> For devm_of_phy_provider_unregister(), its comment says it needs to invoke
> of_phy_provider_unregister() to unregister the phy provider, but it will
> not actually invoke the function since devres_destroy() does not call
> devm_phy_provider_release(), and the missing of_phy_provider_unregister()
> call will case:
> 
> - The phy provider fails to be unregistered.
> - Leak both memory and the OF node refcount.
> 
> Fortunately, the faulty API has not been used by current kernel tree.
> Fixed by using devres_release() instead of devres_destroy() within the API.
> 
> Fixes: ff764963479a ("drivers: phy: add generic PHY framework")
> Cc: stable at vger.kernel.org
> Signed-off-by: Zijun Hu <quic_zijuhu at quicinc.com>

Reviewed-by: Johan Hovold <johan+linaro at kernel.org>



More information about the linux-phy mailing list