All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yige Jiang <yigejiang86@gmail.com>
To: chrome-platform@lists.linux.dev
Cc: Yige Jiang <yigejiang86@gmail.com>,
	Benson Leung <bleung@chromium.org>,
	Tzung-Bi Shih <tzungbi@kernel.org>,
	linux-kernel@vger.kernel.org, Nick Crews <ncrews@chromium.org>
Subject: [PATCH v2] platform/chrome: wilco_ec: Fix device reference leak on open failure
Date: Thu,  5 Nov 2026 15:47:09 +0800	[thread overview]
Message-ID: <20261105074709.55016-1-yigejiang86@gmail.com> (raw)

telem_open() takes a reference to dev_data->dev before allocating
the session. If that allocation fails, it returns -ENOMEM without
dropping the reference. Since release is not called after a failed
open, the device data remains pinned after removal.

Take the device reference only after the session allocation succeeds,
so that a failed open does not leave an unbalanced reference. The
successful open path remains balanced by telem_release().

Fixes: 1210d1e6bad1 ("platform/chrome: wilco_ec: Add telemetry char device interface")
Signed-off-by: Yige Jiang <yigejiang86@gmail.com>
---
Changes in v2:
- Move get_device() after successful session allocation instead of
  adding put_device() to the allocation failure path, as suggested
  by Tzung-Bi Shih.
- Drop the obsolete Assisted-by trailer and retain the AI disclosure
  below.

v1 Message-ID: <rc-review-20261103-vc-85-d1e3d35e7c31@gmail.com>
Based on linux-next next-20261102 (2637bdec0535).
Compile-tested: baseline and v2 arm64 target objects, GCC 14.2.0, W=1.
CONFIG_COMPILE_TEST=y, CONFIG_OF_DYNAMIC=y, CONFIG_WILCO_EC_TELEMETRY=m.
No full kernel/module-link, hardware or runtime test was performed.
AI assistance: Codex (LLM) helped make the patch.

 drivers/platform/chrome/wilco_ec/telemetry.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/chrome/wilco_ec/telemetry.c b/drivers/platform/chrome/wilco_ec/telemetry.c
index 45be318b05f6..b91cb62c4192 100644
--- a/drivers/platform/chrome/wilco_ec/telemetry.c
+++ b/drivers/platform/chrome/wilco_ec/telemetry.c
@@ -245,13 +245,13 @@
 	if (atomic_cmpxchg(&dev_data->available, 1, 0) == 0)
 		return -EBUSY;
 
-	get_device(&dev_data->dev);
-
 	sess_data = kzalloc_obj(*sess_data);
 	if (!sess_data) {
 		atomic_set(&dev_data->available, 1);
 		return -ENOMEM;
 	}
+
+	get_device(&dev_data->dev);
 	sess_data->dev_data = dev_data;
 	sess_data->has_msg = false;
 

base-commit: 2637bdec0535a2044cd830eba9a79363651d9043

             reply	other threads:[~2026-11-05  7:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-05  7:47 Yige Jiang [this message]
2026-11-06  2:41 ` [PATCH v2] platform/chrome: wilco_ec: Fix device reference leak on open failure Tzung-Bi Shih

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261105074709.55016-1-yigejiang86@gmail.com \
    --to=yigejiang86@gmail.com \
    --cc=bleung@chromium.org \
    --cc=chrome-platform@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ncrews@chromium.org \
    --cc=tzungbi@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.