All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Sanjay Chitroda" <sanjayembeddedse@gmail.com>
Cc: dmitry.torokhov@gmail.com, linux-input@vger.kernel.org
Subject: Re: [PATCH v5 05/13] iio: accel: hid-sensor-accel-3d: convert probe and teardown to devm-managed resources
Date: Thu, 06 Aug 2026 12:39:31 +0000	[thread overview]
Message-ID: <20260806123932.50C001F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260806-28-apr-iio-redundant-argument-v5-temp-v5-5-f1f92c1d830f@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [Critical] Concurrent HID sensor events can trigger a Use-After-Free because callback deregistration does not synchronize with active event handlers.
--

--- Patch [5]: [PATCH v5 05/13] iio: accel: hid-sensor-accel-3d: convert probe and teardown to devm-managed resources ---
commit a9b078923d03e5b1bd623e5152abd36454ac1fc5
Author: Sanjay Chitroda <sanjayembeddedse@gmail.com>

iio: accel: hid-sensor-accel-3d: convert probe and teardown to devm-managed resources
    
Convert HID IIO driver resource management to use devm-managed helpers,
tying the lifetime of all resources to the device.

> diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c
> index a7cccbaa82f86..7ba0228f18b43 100644
> --- a/drivers/iio/accel/hid-sensor-accel-3d.c
> +++ b/drivers/iio/accel/hid-sensor-accel-3d.c

[ ... ]

> @@ -384,38 +385,14 @@ static int hid_accel_3d_probe(struct platform_device *pdev)
>  	accel_state->callbacks.send_event = accel_3d_proc_event;
>  	accel_state->callbacks.capture_sample = accel_3d_capture_sample;
>  	accel_state->callbacks.pdev = pdev;
> -	ret = sensor_hub_register_callback(hsdev, hsdev->usage,
> -					   &accel_state->callbacks);
> +	ret = devm_sensor_hub_register_callback(dev, hsdev, hsdev->usage,
> +						&accel_state->callbacks);

[Severity: Critical]
This is a pre-existing issue, but does this sequence leave a use-after-free
window during device teardown?

If the driver unbinds or probe fails, devres will call
sensor_hub_remove_callback(). This removes the callback from the list using
dyn_callback_lock, but it does not wait for active sensor_hub_raw_event()
invocations to complete.

If sensor_hub_raw_event() is running concurrently and has already obtained the
callback pointer, devres will proceed to free the indio_dev memory.

When the event loop subsequently invokes the callback, wouldn't
accel_3d_capture_sample() execute on the freed memory?

drivers/hid/hid-sensor-hub.c:sensor_hub_raw_event() {
    ...
    if (callback->capture_sample) {
        if (report->field[i]->logical)
            callback->capture_sample(...);
    ...
}

Could this lead to out-of-bounds writes when it attempts to store the
sample data into the freed accel_state?

drivers/iio/accel/hid-sensor-accel-3d.c:accel_3d_capture_sample() {
    ...
    struct iio_dev *indio_dev = platform_get_drvdata(priv);
    struct accel_3d_state *accel_state = iio_priv(indio_dev);
    ...
    accel_state->scan.accel_val[CHANNEL_SCAN_INDEX_X + offset] =
                        *(u32 *)raw_data;
    ...
}

>  	if (ret < 0) {
>  		dev_err(&pdev->dev, "callback reg failed\n");
> -		goto error_remove_trigger;
> -	}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260806-28-apr-iio-redundant-argument-v5-temp-v5-0-f1f92c1d830f@gmail.com?part=5

  reply	other threads:[~2026-08-06 12:39 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-06 12:25 [PATCH v5 00/13] HID: iio: Introduce devm_ APIs for HID sensors Sanjay Chitroda via B4 Relay
2026-08-06 12:25 ` Sanjay Chitroda
2026-08-06 12:25 ` [PATCH v5 01/13] iio: hid-sensors: remove unused iio_dev argument Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:37   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 02/13] iio: hid-sensors: introduce device managed API Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:25 ` [PATCH v5 03/13] HID: hid-sensor-hub: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:40   ` sashiko-bot
2026-08-08 20:10   ` Andy Shevchenko
2026-08-06 12:25 ` [PATCH v5 04/13] iio: gyro: hid-sensor-gyro-3d: convert probe and teardown to devm-managed resources Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:40   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 05/13] iio: accel: hid-sensor-accel-3d: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:39   ` sashiko-bot [this message]
2026-08-06 12:25 ` [PATCH v5 06/13] iio: humidity: hid-sensor-humidity: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:36   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 07/13] iio: light: hid-sensor-prox: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:39   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 08/13] iio: light: hid-sensor-als: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:40   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 09/13] iio: magnetometer: hid-sensor-magn-3d: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:25 ` [PATCH v5 10/13] iio: orientation: hid-sensor-incl-3d: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:25 ` [PATCH v5 11/13] iio: orientation: hid-sensor-rotation: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:40   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 12/13] iio: position: hid-sensor-custom-intel-hinge: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:48   ` sashiko-bot
2026-08-06 12:25 ` [PATCH v5 13/13] iio: pressure: hid-sensor-press: " Sanjay Chitroda via B4 Relay
2026-08-06 12:25   ` Sanjay Chitroda
2026-08-06 12:44   ` sashiko-bot

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=20260806123932.50C001F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=sanjayembeddedse@gmail.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.