From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f196.google.com (mail-dy1-f196.google.com [74.125.82.196]) (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 E52EF3E1220 for ; Thu, 4 Jun 2026 09:01:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.196 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780563711; cv=none; b=fYKWinPNlKullcmyRUcD2xqTGVaR3smTlVjZxAGBVM7/yiF7UKkxyW+bOYOz+5rNvSD6TVveA0U0khPuOWRjWvsfPh2CiSZ9n6XvfQAJQXH67N2T8IrHqPNbg4x/vScyJ5bYC0b5/RKZv/CpaZOJCsVHl8IyZtU0vUAL3/YkQkU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780563711; c=relaxed/simple; bh=tevFvEzdnCkxOqdw10b+jO4O9VWLjSDW9X8srrONk4o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MjQmEQpBx8gt2J28evfqzMJobwz9JSZzzIrBXQCZDXwJr4hvqg6wmYzNNzKq7v2ctSFD1WbwE8Dh0IeqFN5e8ewZHd6lfpAfF9tbHvanKo2VFOMaY8iruzBBdDWxM8jZdcazJe+b7rBXd0OhMwbyfgVoWcW9EbVVq/5moyIBdcQ= 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=pbApc5ei; arc=none smtp.client-ip=74.125.82.196 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="pbApc5ei" Received: by mail-dy1-f196.google.com with SMTP id 5a478bee46e88-304d7f31215so345734eec.1 for ; Thu, 04 Jun 2026 02:01:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780563709; x=1781168509; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UpExvBqJEwYgCOZtnj17mLYXW37IIUimvoP5yk4TgGc=; b=pbApc5eim+XP8m41vIx/tZRlpQcSYdQUBxcwM5FOCS3HXFlRMxqWPlTruvFjfQO992 yReIc8lF/B+xXSOw4D4Za2nuVdEyGIXNP2h7LcH+2Y1CR/u2cvUvAYqHgbR2e0hjXZIw KTKbMwK9qrpaQ6ueAaAdmTmJtW/dz1TWJK1mg+LY/Omwkft9IDwEzq8DhVevI192xKi+ hNm1mMGYx3g1DHIkZjzXupRO77TLbnDKtA06oYbxHuyFxwxFFnBav+UXqkyBOuhgh7dT +GOWAuDAeLdzaLJTlsdWBjaSGVLm7PNQ+WVwBwLmIIiuCRMdY7C/5oX/fQsvRp5Aia/g rhEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780563709; x=1781168509; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UpExvBqJEwYgCOZtnj17mLYXW37IIUimvoP5yk4TgGc=; b=JMCPPnJs8+SL/RxZadtqL2OrvAC7Aotl0KKqLUeEs6pIT2/J17h/C+fwrfbtYdtblK DOC9CGnXVHgwNEk3f9NLLA9ghyF5Fbo49xzumyjKMLYbVvDQU4KRR1LQlaZyJOZjclNA rCZR9H5nbML/xAj0UyFcbbqhYJWt0SYJwo8+CBJD6ibofMzjloCZbQ6hlkGuZzwVayVy 3jGTNsddQ2f324Rov5zPQrz1IqPkPzPsKzVvoh4ncGUIS3WQZtMe4/3AYhJNxWM6iuqB VIdfPn3D/MgcOKQt/rYFJIh7/g0M+3zowHugixqSwF2Srz+FDwilODJevmLC4CPnLdus MHhg== X-Forwarded-Encrypted: i=1; AFNElJ+nVUuFexJocMyaDBd1K3BEUtaZDBtponcqGknJSD04f/+DY9zNa/6iI5FN3inIXHaqE4u9Gi7inHCDDHY=@vger.kernel.org X-Gm-Message-State: AOJu0YwXfUsCdbJQ5wNzPpKYzYTD2DWRMrvWbXeEnds39eoLr1R8td2E KixVdFn6snzjihf5kbUcGjMkZBCg/Dc6I5rw6mfayWWCPhPdAesuhFjJ X-Gm-Gg: Acq92OG4AJPKkjg20/83q2GyYTM1TvblWgk2M3zqZ5Sv40/dEaO4UezGu2EdzvxVmqM lzJuD25Ec6Ae8u+8vfD3j/t7Wggitfare1HaXlTP+E1f3E0lzUBljlSbhkGiXBvhxT03qTwkmVf Jgd5dQgYH60rRqvMjDR/Vtx5obL60ERrc3Flo1XTxNlfmPL6v5upV17wbWiRbMlgoipGL8tPHKN FQfVins/mSkR9uhLzrNMCkdeo8N6zkOCCIUG2zswZ7Czwva4agBsjpi0GEmQ3ym9NapSqreD0th oUtfqEnqBp+E4zWy7AHsm2ISzCACAPvZW2aFgZf4fN7WI9s10cjFridv/Q0vq8My1KY8MZ3CVc8 vZeRMz6vbKOs0NsX0Wg4cw/42vBnClFSyy2XiAIuU6cBoComTfN0NODbjqdlTjvkkGUoCWaIJvY YyRJ+HLt1F6a7jShoN4FloceCRBfH5dtph/uPln9X09EmubC+cM+TVWrLTrhDiiuMS1w== X-Received: by 2002:a05:693c:25c8:b0:2d9:f0b3:1d98 with SMTP id 5a478bee46e88-3074fa654femr3760537eec.7.1780563709153; Thu, 04 Jun 2026 02:01:49 -0700 (PDT) Received: from localhost.localdomain ([76.32.119.210]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3074df8076csm4892717eec.29.2026.06.04.02.01.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 02:01:48 -0700 (PDT) From: Hungyu Lin To: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: vikash.garodia@oss.qualcomm.com, dikshita.agarwal@oss.qualcomm.com, abhinav.kumar@linux.dev, bod@kernel.org, mchehab@kernel.org, hverkuil@kernel.org, stefan.schmidt@linaro.org, Hungyu Lin Subject: [PATCH v3 1/2] media: qcom: iris: fix runtime PM reference leaks Date: Thu, 4 Jun 2026 09:00:58 +0000 Message-Id: <20260604090059.46355-2-dennylin0707@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260604090059.46355-1-dennylin0707@gmail.com> References: <20260604090059.46355-1-dennylin0707@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 --- 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/media/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, struct device *pd_dev) if (ret) return ret; - ret = pm_runtime_get_sync(pd_dev); - if (ret < 0) + ret = pm_runtime_resume_and_get(pd_dev); + if (ret) return ret; - return ret; + return 0; } int iris_disable_power_domains(struct iris_core *core, struct device *pd_dev) @@ -90,12 +90,10 @@ int iris_disable_power_domains(struct iris_core *core, struct device *pd_dev) int ret; ret = iris_opp_set_rate(core->dev, 0); - if (ret) - return ret; pm_runtime_put_sync(pd_dev); - return 0; + return ret; } static struct clk *iris_get_clk_by_type(struct iris_core *core, enum platform_clk_type clk_type) -- 2.34.1