From nobody Sun May 24 18:41:33 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 48A88313546 for ; Sat, 23 May 2026 18:44:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779561899; cv=none; b=euGn6wc7daJIPm8fBCdRfdFVkKrAvh7aO+CkiuJ7I3EpVYGgSvmv7sBPXIU0C0QAHsEwCExWNT2WXeMmQ+I0Jk2eKyl6EwzcgvE6sDkLAfN9fPFfC/qibWIZpPpwHBHo8K7UULrFYAroYagGSIJXJ731An7+kMIKlGc1AmlFAiQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779561899; c=relaxed/simple; bh=aZX97VakabAxsxLccILXtqkt7HHyEK+J2G5b3K8x48E=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=gRlns0kmM8pAfr4comIDWU86GXnuJo7bLB9LDaG9baXN4VntNS2N4KwbjO1q4A5b7InPihzmnwzbBv/5f0N2R4uhfVly0Tb+wQts7PfcHvMh1XPQh8vbUupXtCgymCnoWLrChx8leKZ2aUVVSI12BCaidDM09c/KAB8+QGy7tfA= 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=duoe1KNJ; arc=none smtp.client-ip=209.85.128.52 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="duoe1KNJ" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-490402da691so1551655e9.3 for ; Sat, 23 May 2026 11:44:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779561897; x=1780166697; 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=S1c7FctDRupy5mSh8TGaJMMBl/TrHx/xxuC9OcBfoes=; b=duoe1KNJofrdaIS6kaxqT0X5E2VRUHlW2/G2xwCiF9lzEZEw0A4sCywjMZaechOlpj WRpcOX8IWUDdxhkVW3uBY0sIJQNYCIJHe1zgRFHkITVWGy3JUMUx8MwUgf0eP7fAGA9S olFl4iKYhCP6a03fpL4a1qcM8ejazRdY036wvWml/23D072wkkMTSr9KvA7hjhUjPoia +8petBPGfi91YBXHQtP6XVlpg0SvMnDJJ81yyu/TdUx5g8u0EkVf8ainjF1BJfKcGACd 9Al1sbPsg0p1VUXBPTrjk6eIUGG3g6IS+GGEyvkY+13mLmHc2uqwiJHoYuLYKAsIWFr2 SFeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779561897; x=1780166697; 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=S1c7FctDRupy5mSh8TGaJMMBl/TrHx/xxuC9OcBfoes=; b=cs0TXKJb/DIGNC5DQuACytK24I96HnkYwFx80bTIULuXk81qLLa2lDy4/zg7gdOkxW jvEcP1LUrt9Q01kO/IqKQrNrPk7d3awkzKzvHh7EbtNOIoWFO+D17SI0oz08HbG51uOg Gcs3yY1oDx1l0h4sKMIwckjA8PRFLn5St42ylhyHhysECKkCjS2lEDWL0QjIJ5chAq+W /FuOzDqTbz440WEzpl85vwcT3AUJYmLoTJSBzIEEYZ9O1EvbOAUGnsdkHha6rQ/G382a VrDQah7NKFN192I3tucSahIVmxarIkmvR0kHH3OhWtxLBHBQ2eJUt85BUYBsSZ5C+dxP rqmg== X-Forwarded-Encrypted: i=1; AFNElJ/yL/0Qrpqqo/ZwN716K8lLNwJwo8shqhFCRYWF0Uh0Hwc918Ow94FeMmzem9USoXGWgqkFVpq0jCf4BhI=@vger.kernel.org X-Gm-Message-State: AOJu0YwZzJog2ttV02N8P6OdcjNXFsltanQLMSz7BqJvjRIptnOKC1od eezntlpyOH4RlyXiSra0u0hwqO4ekFq7oZ0jLYQqw+sSmSk2n+p1C5Ha X-Gm-Gg: Acq92OH13intSeokjHj6I2aRxSFr9kP3dRvxuV0W2lul9cKoULc0sSVii90TR7jLdpM dxu/1i419KcE+90e09NWRvlLu8oo8w8VMgsbFWetT6umyiGhTrFcbhI9GQyuoVloonpxUo6E9gv Z7aa4cl/vYJn3rLQ8f2EakO/m4GrsEbIE6Ze1QbajFDNlU/03/pgLVu0ZYhs++rqztEtzsehkMf fj7vQZMVXWqbCu6KEi4FsEX2O6GadDA1jSfSfqjunpGuu1R45OiDmiBVA6COa7nrjspjGvl75DQ 5M/SKSRw/vk3boeYMNv9dJh9fYjEqGcbmGKX2i/btZSIZOic9bt9wr0SLX5mgzdgp66yxSGd/HD 7BwSN28/8QVoXj1S4XHDjp6/zpVMCeZV43HbudyKgA7j71pbCDRqMZuGj235i7hool3AnZ7Hm6g ip5Q9OZyAhbFY9rxj/f/lEYn2MLk55YVvnshGIiCO3w01kbeBkA9gguqo= X-Received: by 2002:a05:600c:4fc9:b0:48e:6db5:76e6 with SMTP id 5b1f17b1804b1-490424884aamr49788885e9.2.1779561896396; Sat, 23 May 2026 11:44:56 -0700 (PDT) Received: from localhost.localdomain ([94.158.61.193]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4904527dbf3sm120966255e9.6.2026.05.23.11.44.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 May 2026 11:44:56 -0700 (PDT) From: Stepan Ionichev To: wbg@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, sozdayvek@gmail.com Subject: [PATCH] counter: ti-eqep: balance pm_runtime on devm_clk_get_enabled() failure Date: Sat, 23 May 2026 23:44:48 +0500 Message-Id: <20260523184448.7609-1-sozdayvek@gmail.com> X-Mailer: git-send-email 2.33.0.windows.2 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" ti_eqep_probe() calls pm_runtime_enable() and pm_runtime_get_sync() before devm_clk_get_enabled(). If the clk call fails, the function returns directly via dev_err_probe(), leaving runtime PM enabled and the usage counter incremented. Route the clk error through the same err_pm cleanup as counter_add() so the runtime PM state is unwound on every failure path. Signed-off-by: Stepan Ionichev --- drivers/counter/ti-eqep.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/counter/ti-eqep.c b/drivers/counter/ti-eqep.c index d21c157e5..6b79a50fd 100644 --- a/drivers/counter/ti-eqep.c +++ b/drivers/counter/ti-eqep.c @@ -548,17 +548,22 @@ static int ti_eqep_probe(struct platform_device *pdev) pm_runtime_get_sync(dev); =20 clk =3D devm_clk_get_enabled(dev, NULL); - if (IS_ERR(clk)) - return dev_err_probe(dev, PTR_ERR(clk), "failed to enable clock\n"); + if (IS_ERR(clk)) { + err =3D PTR_ERR(clk); + dev_err_probe(dev, err, "failed to enable clock\n"); + goto err_pm; + } =20 err =3D counter_add(counter); - if (err < 0) { - pm_runtime_put_sync(dev); - pm_runtime_disable(dev); - return err; - } + if (err < 0) + goto err_pm; =20 return 0; + +err_pm: + pm_runtime_put_sync(dev); + pm_runtime_disable(dev); + return err; } =20 static void ti_eqep_remove(struct platform_device *pdev) --=20 2.43.0