Message ID | 20241102-phy_core_fix-v4-3-4f06439f61b1@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | phy: core: Fix bugs for several APIs and simplify an API | expand |
On Sat, Nov 02, 2024 at 11:53:45AM +0800, Zijun Hu wrote: > From: Zijun Hu <quic_zijuhu@quicinc.com> > > For devm_phy_destroy(), its comment says it needs to invoke phy_destroy() > to destroy the phy, but it will not actually invoke the function since > devres_destroy() does not call devm_phy_consume(), and the missing > phy_destroy() call will case that the phy fails to be destroyed. Should also have been split in two sentences, but this also works. typo: s/case/cause/ > 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@vger.kernel.org > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index de07e1616b34..52ca590a58b9 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c @@ -1121,7 +1121,7 @@ void devm_phy_destroy(struct device *dev, struct phy *phy) { int r; - r = devres_destroy(dev, devm_phy_consume, devm_phy_match, phy); + r = devres_release(dev, devm_phy_consume, devm_phy_match, phy); dev_WARN_ONCE(dev, r, "couldn't find PHY resource\n"); } EXPORT_SYMBOL_GPL(devm_phy_destroy);