From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 ECF1B3EEAE9 for ; Wed, 17 Jun 2026 11:47:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781696823; cv=none; b=VQQbcNqtt4+AYV3qFZy8ajzkHmSb3oMzF/NuieXkPRbPQfRwJbHTF54OkHKxS2KXZ2GJQAGLQ1qlje1hyQEb1hZY3FPMAoGZLsOmecj0OsFSkfKM7wqWO12+8DfKbch/RzfIL0YOWGdD7lE3gPGGiaJg5XWixOWLUSykiNMBe8k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781696823; c=relaxed/simple; bh=mkFLfnS/2FDmTBVL9hz5P8Hk3KlqN9gtvDdDbrIzECg=; h=Message-ID:Date:MIME-Version:Subject:To:References:From: In-Reply-To:Content-Type; b=ThXwhGvv/2PJFrljCqjsE+L7HsuUs3ys8iL9XCo6W7kuB86fJDlJlOROaM/nhNxrvmNUQhF7Rk+P96tBdYIabsJfy4ymXs2TKUKSGmUs1x+jWtatHKgiAeJGiPsSnLSVblynJShRZ8bkO8PTvxzZRLESk62lq6GvGfqdo7yx4GY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=pR76cSDz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Jgl+uKIr; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="pR76cSDz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Jgl+uKIr" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65H8VwOd2056596 for ; Wed, 17 Jun 2026 11:47:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= nrhjT/VonZlPSYP2Cy5dXBtmUz3w1kLQ+hxFoxWx5YI=; b=pR76cSDzyn9FqfoF lVoFRWTTdObzTiW7ZwphnbQwuoXXqRF0WF8oKqfxdVfiv/gMEhancDeRE5OlSwku jpxFFWbeRJrP4a4SnV221cwNf9scZauvL3jN4TsR9m8lVMeoeVSAy4bcmATLrZPW ihV2Jd+yDGTeaEYgszSuy+lde5anjIYSf2Q2F5Ymolra6O1J2KkkRXBZzLjSPbU2 kbw1Vry5ZID6bCIF9gbB+tEykCJ7NSkr7kup7Q3QgVyiToua8sl3XfAfhPoLR6oW K4otNQXLNVR6j8Ae1svRKgXLqX4dL+ByoWjwtGLdfzLmQiyEdu4rPiyXMm8zDmdw 8I8d0g== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eueesaxht-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Jun 2026 11:47:00 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-9157b3e5182so26731185a.1 for ; Wed, 17 Jun 2026 04:47:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781696820; x=1782301620; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=nrhjT/VonZlPSYP2Cy5dXBtmUz3w1kLQ+hxFoxWx5YI=; b=Jgl+uKIre5A7GkPkqL6oOSOeD7zkcrAlAjo8PcAFvxn17RweN7YC97ocT7jWgrq6hW bmuoBvZiJzGVevz4E+L8iMUR7SHXwS58DMxvcRbScdPHmU4al6DEp1GrA7Vf5vOzCxyt bTrJByTBAm4r6b5AUT+YWlkxdlcJF1hoso/PYsId/ZzdS1ZZh+4qwKhP7EHrdfkoXZV2 cgPiLJFRKAAqTGct+LqytY290/97/JXhTs7FFIVq/K+TAvhAsD2R+DL9kJjISkFtyWAq 7JDNuwXQgcbugjMSEWPi0ZoxFuripCFXfTvot+HoDfUlGFWyZn8U4CnlTqU7WLOtBcw6 VC7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781696820; x=1782301620; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nrhjT/VonZlPSYP2Cy5dXBtmUz3w1kLQ+hxFoxWx5YI=; b=YorTH7MTudX/9KK0VZLBGFxUYVvjxOQonyCN2r48dC3OUdZeuYpyXyh8x7s8sMDV7j XxRDFxrK7bTMN4Lzum8xJ2npSZ3kQ02kXw1xBH34ZoF4/rxbGCuZ3c+YAlyTnd314F+m SuudQ1OSITpC8Tib6x1vulQfEXA6S6z6KYxfyTk0stnmL0Q42aakXheUW+HM13Q8bSKR 3RGso9OOygXDDwD2YYIJx0Hz3YCWGHeWZSIfP319/nL4HNhdPkLKf5Hi1crGFXVFwKpr dr6RKaEwwQ+rnfoVKl6Pwks51miK6zvKpOhITSpy9ndwMciq6ThkD8b3QongSIjWFI+R DKGA== X-Forwarded-Encrypted: i=1; AFNElJ8/n+GjuZK7tvGj/L03ygRedl0f6Yr856XMekrhwbX13pWaCxAoatQtpjfDyZrEqGGcSLfG2uSoApfjsu8=@vger.kernel.org X-Gm-Message-State: AOJu0Yzju8lFTnPKgeAQDaOzgT1IdFEQzhXx6Typph5WotwUamfSSKG5 Mym5FfJ/DEWD8B5sfzF1rDsthQYPZcLQmwHxcooh7gQt/p4abmqQIHL7oNX1j0x5B8vUqBA9hqJ +At0UjHlltmlsk1DqqQluYOGdT5Ye49wBKLMxU6liVcL0a/c2FgS0U7n5xhtmYmg3ksv6TkiLTa Y= X-Gm-Gg: Acq92OENY7+eBZ8UO1mZqtAJhmZAEpaGgpC3z2GBLxzQlk6If2X2XMue87NKzBJxNqx ekvFkGcDUGCgP4Kj1rmJovCuj6l2eN45pVy+fmvbuHmh2ytvh/d0PpbCzwmI+hvP/H2ZBFWIzIn G3MqUKtri7xKRm/Mp5yrLFO9mwtk2Wf9FCDGg89TSjFGAhDkp8R1VXRbHDUrE61ydogzKntZ4h8 TECr9wCLqKE34meO6u8W/gP4u9hFdfz9pKDY4J7tzAiCJtYXfpFU5r0qKCTy1IdDitUhWvBHT4x oLtr495e3by/iLFSfbc9Jdk8J/sIxCnBy4loi+wIF/0PuOomrHPkECi/rnjXD708gb5bGGehw4M kBurDjk/lSBlZsDGt4rjMHC9zQtgr+WZORgA= X-Received: by 2002:a05:620a:1727:b0:915:6433:2599 with SMTP id af79cd13be357-91db94877e5mr291908685a.1.1781696820237; Wed, 17 Jun 2026 04:47:00 -0700 (PDT) X-Received: by 2002:a05:620a:1727:b0:915:6433:2599 with SMTP id af79cd13be357-91db94877e5mr291906085a.1.1781696819694; Wed, 17 Jun 2026 04:46:59 -0700 (PDT) Received: from [192.168.120.170] ([178.235.128.140]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfdb51007a9sm771684866b.21.2026.06.17.04.46.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2026 04:46:58 -0700 (PDT) Message-ID: Date: Wed, 17 Jun 2026 13:46:57 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] soc: qcom: rpmh-rsc: unwind notifiers on populate failure To: Pengpeng Hou , Bjorn Andersson , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260616005618.9328-1-pengpeng@iscas.ac.cn> Content-Language: en-US From: Konrad Dybcio In-Reply-To: <20260616005618.9328-1-pengpeng@iscas.ac.cn> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE3MDExMSBTYWx0ZWRfX/NnkrAeBvkdq J6uulofV2+n9D12OnaIRIYPPrFxvhwqxb1bf9/Ohc7cZKjh3+nW1SdsyjQcFsvuQH+o5yqCS6QZ o+3C2z1Ru6HTHbo6SutuFzJyCB+1HqA= X-Proofpoint-ORIG-GUID: PfE6uI-ziZ0k9muIJYX7mlb5gTTC61KP X-Authority-Analysis: v=2.4 cv=R6oz39RX c=1 sm=1 tr=0 ts=6a328934 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=PRfkaYvzSr8QmIIGAkY2Sg==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=K7GB3kXSwgtqqrUBk-sA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-GUID: PfE6uI-ziZ0k9muIJYX7mlb5gTTC61KP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE3MDExMSBTYWx0ZWRfX9p6hh7tA72wN fBhzQuQH5nOLapEDGq6KW2oMCC78+YZ724Kt6M1K1mqWFpUqNGE06+AFLx3Qc30XBAS/kJHeUHC 30XQKDaeFcHqRAX31Z8ErjeF0c+eUKi+xtV8dk+iqNcX1r19JDK9NKkYcyQGmEsQk9z0Sk7AQKp wMPbgR6sXBYHBhHgUGmZ2Q9NF8HyxKQDas7vm6fMrzSdtbbMoMUVgS1wgoSC575nWP2I06FSh/+ wyIJpmQO8J1LhTThvdKHI9Lhie42Uv3SdkNBzROUDVS1n/mpIMPPM/eZ6cNXhp93/+Wl6hDemNN vQ5oQ9QY3vNA6pFEcg6Anulag2y1Mq/152bQsrns9O83NRCNf4J/tPcd+GWEV45c7nFOM9rM96q ME8Gq2yIVw2YcwmqpiuqomhoUOMZgskyyhagE1DklojJ9+N1nyTfFvol9lwFPdL/PA+JGXgE60m Utug+U5rk9fUUoJGPPw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-17_01,2026-06-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 impostorscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606170111 On 6/16/26 2:56 AM, Pengpeng Hou wrote: > rpmh_rsc_probe() registers either a genpd notifier or a CPU PM notifier > before populating child devices. The genpd path is unwound if child > population fails, but the CPU PM notifier registration return value is > ignored and the notifier remains registered on the same failure path. > > Check the CPU PM notifier registration result and unregister it if child > population fails. Also depopulate any children that were created before > devm_of_platform_populate() returned an error, because the devres cleanup > action is only installed after successful population. > > Signed-off-by: Pengpeng Hou > --- > drivers/soc/qcom/rpmh-rsc.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c > index c6f7d5c9c493..a75ff97423e8 100644 > --- a/drivers/soc/qcom/rpmh-rsc.c > +++ b/drivers/soc/qcom/rpmh-rsc.c > @@ -1033,6 +1033,7 @@ static int rpmh_rsc_probe(struct platform_device *pdev) > struct device_node *dn = pdev->dev.of_node; > struct rsc_drv *drv; > char drv_id[10] = {0}; > + bool cpu_pm_registered = false; > int ret, irq; > u32 solver_config; > u32 rsc_id; > @@ -1107,7 +1108,10 @@ static int rpmh_rsc_probe(struct platform_device *pdev) > return ret; > } else { > drv->rsc_pm.notifier_call = rpmh_rsc_cpu_pm_callback; > - cpu_pm_register_notifier(&drv->rsc_pm); > + ret = cpu_pm_register_notifier(&drv->rsc_pm); > + if (ret) > + return ret; > + cpu_pm_registered = true; > } > } > > @@ -1123,9 +1127,14 @@ static int rpmh_rsc_probe(struct platform_device *pdev) > drv->dev = &pdev->dev; > > ret = devm_of_platform_populate(&pdev->dev); > - if (ret && pdev->dev.pm_domain) { > - dev_pm_genpd_remove_notifier(&pdev->dev); > - pm_runtime_disable(&pdev->dev); > + if (ret) { > + of_platform_depopulate(&pdev->dev); devm_ functions clean up after themselves already > + if (pdev->dev.pm_domain) { > + dev_pm_genpd_remove_notifier(&pdev->dev); > + pm_runtime_disable(&pdev->dev); We can probably likewise turn pm_runtime_enable() into devm_pm_runtime_enable() > + } else if (cpu_pm_registered) { > + cpu_pm_unregister_notifier(&drv->rsc_pm); > + } This is a valid change, deserving a Fixes tag, see: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes Konrad