From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 DCD7013957E for ; Mon, 22 Jun 2026 05:21:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782105703; cv=none; b=Qxv03Dw+rmUuqnzNmLX7iraHrkpWqGOHcjiJdTx15sQhXRgog5RaTS07CiB5Y0neO8V1NFpIq3mscyRyF1WcHzOM9MYC28jZSkVbcuMrhVDywd5fJo+4VAwBogOFgfn7d2r0wWJxHLkK/Ecv7pO+hmU+73ejHuPrj2K4XPo6kEw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782105703; c=relaxed/simple; bh=BCpdxMp13MWmpuNuhom36/A72/T44xS2dimSXBcYIZA=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=PRUdO7+4pyTc84hKwuiebUZg+HznRND6jH8z+YCjcshcphXRv1GuSOL8wTfO+hdCzENg/MclbNPOjXKASpULAdkdkQ4GmZc9aS35Won6mxOS3JjKS1zAp2tooamnvFHUykXstGUL/80w//u8mOAl9LGkQ8zK89hD7V2ZpX22tDo= 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=knl5OBDh; arc=none smtp.client-ip=209.85.214.173 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="knl5OBDh" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2c40397e746so22919845ad.3 for ; Sun, 21 Jun 2026 22:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782105701; x=1782710501; 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=cuk3e9Q9B2r4SSDnaS5qw6ILcFjwSZa+lRAcxCF+p+c=; b=knl5OBDhpydRo0TryTR34snEnXDdt4XDWdOQz4IMeHYFLPw/PpBeIq1H7MnvTEYAk6 bu8qUdwauJwSv/oKnw2O16tD5rbupY/l0GsqYzlr0WCk/oHuKuj2IBB9GAzxFdy/n3PN b4+tJIkYiEMzJMrR0c3bH//CiDjav6dspU7ILbQf9RJcqCDMebYf5eDhGsEwUOf6/gfA nl0B1wAViOlJsytFkTf0+AhmepncplDn02sOS8hbt3JcdVvpec6cH0xo1YN28ZTI0dyO EQKoOKE3CGYUMOC0m0NRo73JyssOFqyCpXRO/wGDRfg02O9fMw6bjAl3VhZ7oJiExSfS TJvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782105701; x=1782710501; 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=cuk3e9Q9B2r4SSDnaS5qw6ILcFjwSZa+lRAcxCF+p+c=; b=jHuSwQiiJ7juZV1pQPfULuX/+aNWXa0baiThhCZulp39+hmSAoDP4KDfrJqVeqVNIo 5dPks9fZgMkA9DI7OrnEv+HL2Z73VyF64biCYCm1zj9i3TO3xvk4o28gl68vfKZnCuQu BPD0OVrMo+dNUAK0XplKAp0qKmUo5s6AkXsMCHu+eKVpny9vDr0wqeuUGzhQJq/NAb0A cikpmvIe5TCVduxZTlDFwZbVM7/mpasHhKYt8NmCkwu6DthK6x7ojYeCOiCNboYt7aRK gGHYvV9nf07TDDrhnnM4ZEZohN+OnutETBzKpSU7MVaQwbbhUdI/qusG0YZIWkcuAgzH ndRg== X-Forwarded-Encrypted: i=1; AHgh+RqoYODYYp9YuVyIL4eH6DtrqnCutrYeQpmD9lmxFzLTKJag7NGfwvyDbowcOoN/gSKWtLbxQg8joJKp3hE=@vger.kernel.org X-Gm-Message-State: AOJu0YygLuC2stPAK4XX4rOID62FMf8BIHk1ltl1Ehx+++HcftDdmIYo HIJ1JgY+FRUplIrBjQnXjnkTH5n+5hcMfhI2X4CdjyMROkyRVE9ctLfW X-Gm-Gg: AfdE7cnjiyowdoi3dpSCPH24z0sEMfgD0Ih4W+Z09xhMOM5x4eQleGLyHH10SIsmIOZ w30v034G2aT77b5w2TEt0HEPrKhGlVtbJi6Qam9rHwTcJfTUo2UMK6OLQhwAaWxa8R4UlmiJK+g M7Kfen/xyzFtP+0BQ1RLIZktYaY5UTnEoh9ITjpolupfF9X2SJc7+eF8JnVInJjomn0Jz8S8t7g a9NZPXBecJsTWslW0gEGqkYG7Mgl1N6gJgxYu5WuRkRyhSrF1ioh5Jco/NHLWX0wVcOUQy9gFJT SASoAhyQeMrjizNmGNPq7qnpQrZVIMxih2NjPd32nJGZPY21K4yuGscehhtC1q9NyfbXAdRotlr wEOY7ZRniZhPTvibMVZvlxXewzNZLTmd3KXKqO3RTWvfrfUbZGVIrqrZik3uZ5oQNc5efNHgs2n xf2vQhy6rnuMZDuIKtRP/WxpwpdvlttaJ9VPsSLw== X-Received: by 2002:a17:902:f652:b0:2c6:db18:ae3a with SMTP id d9443c01a7336-2c7423d62d4mr102798665ad.9.1782105701126; Sun, 21 Jun 2026 22:21:41 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c7444aad99sm73455275ad.80.2026.06.21.22.21.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Jun 2026 22:21:40 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jikos@kernel.org, jic23@kernel.org, srinivas.pandruvada@linux.intel.com Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, hongyan.song@intel.com, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1] iio: temperature: hid-sensor-temperature: switch to non-devm iio_device_register() Date: Mon, 22 Jun 2026 10:51:35 +0530 Message-Id: <20260622052135.1804135-1-sanjayembedded@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: 8bit From: Sanjay Chitroda Avoid using devm_iio_device_register(), as this driver requires explicit error handling and teardown ordering. Mixing devm_* APIs with goto-based error unwinding breaks the expected LIFO resource release model and can introduce race windows during device removal. In particular, the IIO device may remain visible to userspace while dependent resources are already being freed, potentially leading to use-after-free issues. Add explicit iio_device_unregister() call in the teardown path to ensure deterministic cleanup and follow kernel resource management conventions. Fixes: 59d0f2da3569 ("iio: hid: Add temperature sensor support") Signed-off-by: Sanjay Chitroda --- drivers/iio/temperature/hid-sensor-temperature.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/iio/temperature/hid-sensor-temperature.c b/drivers/iio/temperature/hid-sensor-temperature.c index 9f628a8e5cfb..34bff7e9f3a3 100644 --- a/drivers/iio/temperature/hid-sensor-temperature.c +++ b/drivers/iio/temperature/hid-sensor-temperature.c @@ -244,7 +244,7 @@ static int hid_temperature_probe(struct platform_device *pdev) if (ret) goto error_remove_trigger; - ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); + ret = iio_device_register(indio_dev); if (ret) goto error_remove_callback; @@ -264,6 +264,7 @@ static void hid_temperature_remove(struct platform_device *pdev) struct iio_dev *indio_dev = platform_get_drvdata(pdev); struct temperature_state *temp_st = iio_priv(indio_dev); + iio_device_unregister(indio_dev); sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE); hid_sensor_remove_trigger(indio_dev, &temp_st->common_attributes); } -- --