From nobody Mon Jun 8 09:48:36 2026 Received: from mail-dy1-f193.google.com (mail-dy1-f193.google.com [74.125.82.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9AC202FD1A5 for ; Thu, 4 Jun 2026 03:51:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780545116; cv=none; b=PYgwl9gs632nDABdaMsviD1w0cs88/APFMge6xwE4rE65QUDdrYnyuNDRcCJTjJs3A0cys2WCjukVudPD1PdD/HJqN6uVUqGlHqOewrHUv8KzxAZgyj0VPERH/F7ae28RsfSvb22/Cdb8yizNNq/57cRgBeZRVVYF7WJoRJXt2s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780545116; c=relaxed/simple; bh=5Xwn95QTv2SaZnnoatHxG/UMBvLc0GnNX8aMIGUQk2Y=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=nTg8ptGvpYmhbVivm2xKT4z28QqhkRyS9k6Di5QAiiJho6jOyTx85JIiuSKmvUADQpjRcwPmIiOgfDNZ97PF4S8mePWSWfvuWpMf9/rDGguoWlq0TPQPySDjA1l28Fv8WnRpL5aMyuFLMwCWR2ip96s6Omn3NnOCjsS5UwipvQU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=sNAKuKm/; arc=none smtp.client-ip=74.125.82.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sNAKuKm/" Received: by mail-dy1-f193.google.com with SMTP id 5a478bee46e88-304e83724bfso242009eec.0 for ; Wed, 03 Jun 2026 20:51:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780545113; x=1781149913; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LTNM1PBuK92bgU/P3kzPwXTUzBRzY/h/x6TymISVLAU=; b=sNAKuKm/4waEBQJB7/COpOJOvS7df1NGpjs7mvLMfK82iYtIduhNbT4kDHojwDYO1X P2EAmT0sM31WPPiOumQE/7zdBMdXsfxE5xyACb0Xiomy27g30mtivHz2iq9Q6LP5vmmo WEpCKBFAaBlbUbJsdvSd9PA4BWVwot1WYSYD80oWXbWXOQURz5JC/7HW3e11XsDOdVY6 2yf9+rhEWLTc5Vcf/H46ro+4dux3VK3UM8opC9hZn0ZZjN0pCaeCNc159iFClZP+rOyx xkQKPojcsqDBBCNLEhMlalL8wxfagPBLL+Fm23iZ7rvCY3qSaBhWYJwnY+l+kZrb/jUz v8bQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780545113; x=1781149913; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LTNM1PBuK92bgU/P3kzPwXTUzBRzY/h/x6TymISVLAU=; b=mvRP7QvXgiK0/vhFV7bBsFL4cPK2OtDTYDUBmQfBeHGBMtI4bnSYwGM+PbytEZ8DpS opwYkAyt4ijUYN34DmQYoQ0kVllpUOxVtLpvWwhP6Om5X/i5du73tgULrOUWq8nqhvc/ FVHG8swEReA4hc4AWYgYdYqIHh69SBtJMs0tT5nw1Qgn1FggPQDOCMcth2WYWWhIXuU/ Cxd1JhzGckg05YUipL0fXCl/oOy4aB2AfTNHzjaO9Lig/V1vHAH3FMxITH8CF1W/a6Ah BL/2xFE5lN03LOwYbj4kaqZ33OGY5jmMGCgBeSDjmvoZYeToidcWdP7gS49Gi0Wx9k8A vrQw== X-Forwarded-Encrypted: i=1; AFNElJ+cLviNdnPiGEdpQUiq8tLcQHCSV8Zk4YSHwv3hUc884gf2o5Qj/ove3lUaUACA+FJ+Lw7g9lzyPOGH6uU=@vger.kernel.org X-Gm-Message-State: AOJu0YzxSr2XWtghT0nTwmMz9gqCEB7pYyi+t8Xq/mu5Y9D3QDJAQh3l u80M3+ysMz0klij8jAoioI5COkJwoipP9Z1MBg7L7iqidCSGtdWJkdOA0h3z4GFV X-Gm-Gg: Acq92OEVqQihe63eaqrfpKlKLs84l2magQhrlyLBhk5wiBacjSQdjpauytp+gwH9z5W PamgJSgd7yMrdlYr2dXcoWlTHezirYviukgmIfcSH/muLhA+ZDJ/dADFPqZwDQilbGJOrNvUW1z f4JAyyTgAxIeSsOvnI6FtLb3+cpjKsjX09yAYkHPOOLC91uo2MSQENnkh0O++70xZG0Fj6bhcbK VDklDXUTZ9zFKe4Ce612hRx2e3ZtapjisxRhifL3h84ipO+4yDiZp0KDfpYfgBzj8zn/Blumvf2 HZ2mk+GX6wcscfi38l0MYWQ0B3tASTwCF3iDTu5pfHgz4GW3gDwZnuxPhCJfEsDb4uqXzTuCoPw DxL6cCHyf94VvnyLaQzYtwmJlgMBHWONYOX8jOQH2ssnuZMkFo4e6OwvhTKRGKZSAoIQNRAgE/d 0OnGILCVJK4H0PttHgl09G2/n/pzsf1pI2mAWCG7IXA0227evTDi/TRbFI3Ai+K5i7Tw== X-Received: by 2002:a05:7300:3213:b0:304:5a9c:6479 with SMTP id 5a478bee46e88-3074fabc095mr3275339eec.9.1780545112598; Wed, 03 Jun 2026 20:51:52 -0700 (PDT) Received: from localhost.localdomain ([76.32.119.210]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3074deaab1asm3771487eec.17.2026.06.03.20.51.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 20:51:52 -0700 (PDT) From: Hungyu Lin To: vikash.garodia@oss.qualcomm.com, bod@kernel.org, mchehab@kernel.org Cc: abhinav.kumar@linux.dev, stefan.schmidt@linaro.org, hverkuil@kernel.org, linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Hungyu Lin Subject: [PATCH v2] media: qcom: iris: fix runtime PM reference leaks Date: Thu, 4 Jun 2026 03:51:33 +0000 Message-Id: <20260604035133.39825-1-dennylin0707@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use pm_runtime_resume_and_get() in iris_enable_power_domains() to avoid leaking a runtime PM usage count on failure. Also ensure pm_runtime_put_sync() is always called in iris_disable_power_domains(), even when iris_opp_set_rate() fails, so runtime PM references remain balanced. Fixes: bb8a95aa038e ("media: iris: implement power management") Signed-off-by: Hungyu Lin --- v2: - Add Fixes tag suggested by Jie Gan drivers/media/platform/qcom/iris/iris_resources.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_resources.c b/drivers/me= dia/platform/qcom/iris/iris_resources.c index 773f6548370a..f5e3341e1430 100644 --- a/drivers/media/platform/qcom/iris/iris_resources.c +++ b/drivers/media/platform/qcom/iris/iris_resources.c @@ -78,11 +78,11 @@ int iris_enable_power_domains(struct iris_core *core, s= truct device *pd_dev) if (ret) return ret; =20 - ret =3D pm_runtime_get_sync(pd_dev); - if (ret < 0) + ret =3D pm_runtime_resume_and_get(pd_dev); + if (ret) return ret; =20 - return ret; + return 0; } =20 int iris_disable_power_domains(struct iris_core *core, struct device *pd_d= ev) @@ -90,12 +90,10 @@ int iris_disable_power_domains(struct iris_core *core, = struct device *pd_dev) int ret; =20 ret =3D iris_opp_set_rate(core->dev, 0); - if (ret) - return ret; =20 pm_runtime_put_sync(pd_dev); =20 - return 0; + return ret; } =20 static struct clk *iris_get_clk_by_type(struct iris_core *core, enum platf= orm_clk_type clk_type) --=20 2.34.1