All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Sanjay Chitroda <sanjayembeddedse@gmail.com>
Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org,
	sakari.ailus@linux.intel.com, linux-iio@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 6/6] iio: accel: mma8452: use guard() to release mutexes
Date: Fri, 24 Apr 2026 18:30:37 +0100	[thread overview]
Message-ID: <20260424183037.7057821c@jic23-huawei> (raw)
In-Reply-To: <20260422165643.2148195-7-sanjayembedded@gmail.com>

On Wed, 22 Apr 2026 22:26:43 +0530
Sanjay Chitroda <sanjayembeddedse@gmail.com> wrote:

> From: Sanjay Chitroda <sanjayembeddedse@gmail.com>
> 
> Replace explicit mutex_lock() and mutex_unlock() with the guard() and
> scoped_guard() macro for cleaner and safer mutex handling.
> 
> Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
Hi Sanjay,

This can be taken a step further and give less churn + a cleaner end result.

> ---
>  drivers/iio/accel/mma8452.c | 31 ++++++++++++-------------------
>  1 file changed, 12 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> index 9983f76a8bcd..1c284bdcc44a 100644
> --- a/drivers/iio/accel/mma8452.c
> +++ b/drivers/iio/accel/mma8452.c
> @@ -18,6 +18,7 @@
>   * TODO: orientation events
>   */
>  
> +#include <linux/cleanup.h>
>  #include <linux/delay.h>
>  #include <linux/i2c.h>
>  #include <linux/mod_devicetable.h>
> @@ -500,9 +501,8 @@ static int mma8452_read_raw(struct iio_dev *indio_dev,
>  		if (!iio_device_claim_direct(indio_dev))
>  			return -EBUSY;
>  
> -		mutex_lock(&data->lock);
> -		ret = mma8452_read(data, buffer);
> -		mutex_unlock(&data->lock);
> +		scoped_guard(mutex, &data->lock)
rest of the maths after this point is trivial an safe to do under locks,
so even better than this change might be to go directly to using
the ACQUIRE magic to handle the direct mode control claiming as well.

	case IIO_CHAN_INFO_RAW: {
		IIO_DEV_ACQUIRE_DIRECT_MODE(indio_dev, claim);
 		if (IIO_DEV_ACQUIRE_FAILED(claim))
			return -EBUSY;
		guard(mutex)(&data->lock);

		ret = mma8452_read(data, buffer);
		if (ret < 0)
			return ret;

		*val = sign_extend32(be16_to_cpu(
			buffer[chan->scan_index]) >> chan->scan_type.shift,
			chan->scan_type.realbits - 1);

		return IIO_VAL_INT;
	}

There is one other place where it maybe worth using IIO_DEV_ACQUIRE_DIRECT_MODE()
In that location the advantage is tiny but then we'd have all the code in here
using that approach and I think that is worth doing.

+			ret = mma8452_read(data, buffer);
>  		iio_device_release_direct(indio_dev);
>  		if (ret < 0)
>  			return ret;

  parent reply	other threads:[~2026-04-24 17:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-22 16:56 [PATCH v2 0/6] iio: accel: mma8452: improve coding style, pm and resource cleanup Sanjay Chitroda
2026-04-22 16:56 ` [PATCH v2 1/6] iio: accel: mma8452: cleanup codestyle warning Sanjay Chitroda
2026-04-22 16:56 ` [PATCH v2 2/6] iio: accel: mma8452: sort headers alphabetically Sanjay Chitroda
2026-04-22 19:30   ` Andy Shevchenko
2026-04-23  2:30     ` Sanjay Chitroda
2026-04-23  7:47       ` Andy Shevchenko
2026-04-22 16:56 ` [PATCH v2 3/6] iio: accel: mma8452: use local struct device Sanjay Chitroda
2026-04-22 19:35   ` Andy Shevchenko
2026-04-23  2:36     ` Sanjay Chitroda
2026-04-23  7:51       ` Andy Shevchenko
2026-04-24 17:20     ` Jonathan Cameron
2026-04-22 16:56 ` [PATCH v2 4/6] iio: accel: mma8452: Use dev_err_probe() Sanjay Chitroda
2026-04-22 19:37   ` Andy Shevchenko
2026-04-24 17:19     ` Jonathan Cameron
2026-04-24 17:32       ` Jonathan Cameron
2026-04-26  5:46       ` Andy Shevchenko
2026-04-22 16:56 ` [PATCH v2 5/6] iio: accel: mma8452: use pm_ptr() for dev_pm_ops Sanjay Chitroda
2026-04-22 19:38   ` Andy Shevchenko
2026-04-24 17:23     ` Jonathan Cameron
2026-04-22 16:56 ` [PATCH v2 6/6] iio: accel: mma8452: use guard() to release mutexes Sanjay Chitroda
2026-04-22 19:40   ` Andy Shevchenko
2026-04-24 17:30   ` Jonathan Cameron [this message]
2026-04-24 17:35 ` [PATCH v2 0/6] iio: accel: mma8452: improve coding style, pm and resource cleanup Jonathan Cameron

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=20260424183037.7057821c@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sanjayembeddedse@gmail.com \
    /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.