From nobody Tue Feb 10 01:15:30 2026 Received: from pv50p00im-zteg10021401.me.com (pv50p00im-zteg10021401.me.com [17.58.6.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D1AD184F for ; Sat, 2 Nov 2024 03:54:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=17.58.6.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730519676; cv=none; b=Pf8luORsPmW3g1qCza3TmkdwwEjNXjRSwm6g2yyH/odcXRZclYSZ1d43Va9LbJqMyXCmrzRuEWHHDs1ut+/rMezhkSNH/3+TzWYkiDt8A8/nlRD/4szZIrgz/yqOsG4KG9FbZXSNXo0Yli/jDQSrq6VemzpAJ1qdhgeGh5LGPGY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730519676; c=relaxed/simple; bh=nGsaVSj3Or+PJCrL5rwS3AkSAQW59whRTC5OEgG+xXQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tABtTr495KF280d2eTQYJ4RqMiXMYMs8KaVZGJS0NxMdEH9TyQhgDDv2G3ElDgzeVeJW7e2isX98mgU6gx6jh4h+SViA4czEXht5f60XEh+ZHeUFJWGvcOkUAidj/cmMSV+JO0V9TSVdbUAonZS+4zZG0GtVU2diZTlqTHXR3NM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com; spf=pass smtp.mailfrom=icloud.com; dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b=DocaVHfO; arc=none smtp.client-ip=17.58.6.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=icloud.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b="DocaVHfO" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=1a1hai; t=1730519675; bh=4SuEXx9ddfkxQj1AQp57UC2HOKADg1X3Q4LCag85EnU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To: x-icloud-hme; b=DocaVHfO48ZC2WeKzMcfBg2iCGiSqgW0XDpiX9LMRvlQb4DCtfJ8Y3b8wgA6KiKln oF20A+VL8HenjW5fMmIvWmhzjN0+NNX25tlpZTFxtRsxucsli+zSY490xvaKhlkR72 Oa+7+cudXbSAuFNAPQbXDFxWePKsF+t1TzJ52rclDHBDX+10QogNuHgxuWIa6wZle6 xS+i25hgkNzasqzvNTCfuhlMT/W1PrXNWm6Oc5r3A/jY8Qq1XU8owwgj40TrOrQhFZ h8U0j778gE9Zg+uv7s2RH1/AvKLakhzAamFiQTTG2s9U1tlf4ls1lj3t4+9tpq1uIU 0Nv22i6ZnG+Lw== Received: from [192.168.1.26] (pv50p00im-dlb-asmtp-mailmevip.me.com [17.56.9.10]) by pv50p00im-zteg10021401.me.com (Postfix) with ESMTPSA id F08C38E001D; Sat, 2 Nov 2024 03:54:24 +0000 (UTC) From: Zijun Hu Date: Sat, 02 Nov 2024 11:53:44 +0800 Subject: [PATCH v4 2/6] phy: core: Fix that API devm_of_phy_provider_unregister() fails to unregister the phy provider Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20241102-phy_core_fix-v4-2-4f06439f61b1@quicinc.com> References: <20241102-phy_core_fix-v4-0-4f06439f61b1@quicinc.com> In-Reply-To: <20241102-phy_core_fix-v4-0-4f06439f61b1@quicinc.com> To: Vinod Koul , Kishon Vijay Abraham I , Felipe Balbi , Greg Kroah-Hartman , Rob Herring , Arnd Bergmann , Lee Jones Cc: Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Christophe JAILLET , Johan Hovold , Zijun Hu , stable@vger.kernel.org, linux-phy@lists.infradead.org, linux-kernel@vger.kernel.org, Zijun Hu X-Mailer: b4 0.14.1 X-Proofpoint-ORIG-GUID: sZ1d0MhMlAkKd3WtDVYi4Z85pp9PjKSO X-Proofpoint-GUID: sZ1d0MhMlAkKd3WtDVYi4Z85pp9PjKSO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-11-02_02,2024-11-01_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 clxscore=1015 mlxlogscore=999 malwarescore=0 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2308100000 definitions=main-2411020031 X-Apple-Remote-Links: v=1;h=KCk=;charset=UTF-8 From: Zijun Hu 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@vger.kernel.org Signed-off-by: Zijun Hu Reviewed-by: Johan Hovold --- Why to fix the API here instead of directly deleting it? 1) it is simpler, just one line change. 2) it may be used in future. 3) ensure this restored API right if need to restore it in future after deleting. Anyone may remove such APIs separately later if he/she cares. --- drivers/phy/phy-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index f190d7126613..de07e1616b34 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c @@ -1259,12 +1259,12 @@ EXPORT_SYMBOL_GPL(of_phy_provider_unregister); * of_phy_provider_unregister to unregister the phy provider. */ void devm_of_phy_provider_unregister(struct device *dev, - struct phy_provider *phy_provider) + struct phy_provider *phy_provider) { int r; =20 - r =3D devres_destroy(dev, devm_phy_provider_release, devm_phy_match, - phy_provider); + r =3D devres_release(dev, devm_phy_provider_release, devm_phy_match, + phy_provider); dev_WARN_ONCE(dev, r, "couldn't find PHY provider device resource\n"); } EXPORT_SYMBOL_GPL(devm_of_phy_provider_unregister); --=20 2.34.1