From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (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 B6E7D4508F7 for ; Wed, 8 Jul 2026 12:57:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783515454; cv=none; b=hVBpKlrdtWOSZ/ky8yWNo9t+/HTlgSkDw+JkZLqUKoU1/GZCztsajwn1OC+bC0qSEjODufVlT4ylhAT0+cB1PES0D7IoYxfloCR/gc7ojCrcVWRvCSn4hlFjyjNLMhkcUhFWXj/g1MQkSGxRHzRhyVgTlUOJkFb3OHlPILqY988= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783515454; c=relaxed/simple; bh=stG1GSiAq9kc9PkfTMzIAwViIwPpqztHyLvOTZk8X8M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W8fwRceHvynczH32m34+5yRjCGFYKD/zB50O5lA4bKqSRWYzxmkQlRDPGTctP+1d0RLU2nwP3M3tLOqwdM/3Sb50Vt9daoLJBD6HLvs5WBWmdk7jMMIaBxYff4T1DIW4HZjGFrQCwyftFpbzNWwPo0dDvYIEpQefZZFVvnQz7Ok= 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=qz887jGf; arc=none smtp.client-ip=209.85.215.176 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="qz887jGf" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-ca766c1c9ccso273638a12.0 for ; Wed, 08 Jul 2026 05:57:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783515453; x=1784120253; 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:content-type; bh=ZpzWcq+2zDd7uj1PddWt3e1wnYuOHWihKuR6q+QUJqA=; b=qz887jGfBITLUzRFd34zxzK/8QKBKuLIDIdpXkhuVkr9xvnwRIX3+0BejVFvRM8qIO QjctG7YSFnsnt1eoz4QyjV5vDRV7K6mcPMDxVTvd4/M/mGGOj78n/gd/86o8eKvGJ3j3 XRQIuN5+gRv2hZP3thdpeQXwuTDD6R9pRuZT5vyF3wGu1ytxXsoKvm1lBvQMxzs1ZEtx zrH5KyqkQIv4MGDUrqDDqdTeccHjqIphoQ2841fhPewFzzar+dkrbSQIW4nWuMTiGoiv mumnGe5nxPwUrMVF0sopcZBOiohMLlaci8jUKh9udgxoF7qah8Em+pyZJivxbhlBSagt K/uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783515453; x=1784120253; 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:content-type; bh=ZpzWcq+2zDd7uj1PddWt3e1wnYuOHWihKuR6q+QUJqA=; b=MsGPfDxiLBJbXXEB9Eo83XKFAeD4jBAumYVyGNQy2V3NQxEGj4y0PrDtiadpjG82z2 FhyBzBIvnYM6nD2MWIAB95xI2JMkTikAkN9VuJUB6yaeUQiHFMHMXW30SDL4LAQZgziS F6LS9u1pacMyhUDd1Boo8AhMyevEuTg9LqW8Axwh6z0+xdHKTHS+pnAHPACSR5qQQ9CR kXvBNCNfCwAglgT675gdrBZHKTLJrBH/W2OcLfpO80/ZOyLMn4Zba4uNHUZ0uxmyNdbF 747aVy/e2BIeVgq+YxitQo7J5GA054vsHf5Tx6KR18I8f6M8aFG/9YW4o3UYd8KYAGcf /ntQ== X-Forwarded-Encrypted: i=1; AHgh+RpP2rhA4XH/Ze2+THfZ6WCivlzhTZS6633FQrBIjN9iK6wExAQuPgFax9Xj+csYwyLMiszLT6kdPOFGEeE=@vger.kernel.org X-Gm-Message-State: AOJu0YwvdP5FdBLExrvlqhBm1nMm4Vqc868czkFaM2DCF/4PWdP/3Odp 3ivSmLR8NJZKlUCVNYjKsKiMPXs1F04BjdD+EyzC8QTJDRUz4QsmQLu+ X-Gm-Gg: AfdE7clj2cDe3sggST+Z0to5YOrZU7LANsOdYw/2N9V3IjZKkJ4JlLhqCLoMM2eE4vK lI7/CQnDEFJG4Kej12S3FH7+Vm3UmF4g7vTJHIOKSLjOBcfAbrZdaVD4aGDtY8qjzwlQYVLO3I/ Hfs+CUpDA9pvuaAnUDEaV01t7UMjmcm72/sU+pOhOD62sCINPVWcS//R1hdIVmkdTY//Ix0THma 5+NxIK0HgxR34aLSJ2fNTBjs+L+EBw1DUUqBAnjIp+Bz6FKYtlNnBZfmtlvtqk1c1m74PWwyetn 9coOB46bI10udqVMfhu4FKkag6FnrD/k8E/Au5dyGP0KvdATy39pSYkyCEu4Uo/aeLY+8wO8gic VKyW+PKtsTw5BCrO61MgvifPcQ32FUtuX/x0LMMmmENGbDT+2HGey15lhpSQQZyWz+RScg811QI 9dvKzZgYw/wwILNCef964fLBslLGLIWnoriCHjuUDQsfE= X-Received: by 2002:a05:6a21:485:b0:3bf:5ff5:2b0f with SMTP id adf61e73a8af0-3c0bce1ec42mr2812145637.12.1783515453001; Wed, 08 Jul 2026 05:57:33 -0700 (PDT) Received: from localhost.localdomain ([49.207.223.101]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31174accae5sm30299087eec.29.2026.07.08.05.57.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 08 Jul 2026 05:57:32 -0700 (PDT) From: Biren Pandya To: sakari.ailus@linux.intel.com, mchehab@kernel.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Biren Pandya Subject: [PATCH v2 1/2] media: i2c: ov7740: fix unbalanced pm_runtime_get_sync in remove Date: Wed, 8 Jul 2026 18:27:22 +0530 Message-ID: <20260708125720.27156-5-birenpandya@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260708125720.27156-4-birenpandya@gmail.com> References: <20260615210412.34567-1-birenpandya@gmail.com> <20260708125720.27156-4-birenpandya@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 The ov7740_remove() function unconditionally called pm_runtime_get_sync() but completely ignored the return value. If the device was already in an error state or disconnected, this could lead to an unbalanced PM runtime usage count or attempt to communicate with an unresponsive device. Disable Runtime PM first, then see if the device is active, and if so, power it off. Signed-off-by: Biren Pandya --- v2: disabled PM before conditionally powering off as per standard pattern (Sakari). --- drivers/media/i2c/ov7740.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/ov7740.c b/drivers/media/i2c/ov7740.c index c2e02f1918169..2d29147c0f647 100644 --- a/drivers/media/i2c/ov7740.c +++ b/drivers/media/i2c/ov7740.c @@ -1122,12 +1122,10 @@ static void ov7740_remove(struct i2c_client *client) v4l2_async_unregister_subdev(sd); ov7740_free_controls(ov7740); - pm_runtime_get_sync(&client->dev); pm_runtime_disable(&client->dev); + if (!pm_runtime_status_suspended(&client->dev)) + ov7740_set_power(ov7740, 0); pm_runtime_set_suspended(&client->dev); - pm_runtime_put_noidle(&client->dev); - - ov7740_set_power(ov7740, 0); } static int __maybe_unused ov7740_runtime_suspend(struct device *dev) -- 2.50.1 (Apple Git-155)