All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boqun Feng <boqun.feng@gmail.com>
To: "Thomas Weißschuh" <linux@weissschuh.net>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Waiman Long <longman@redhat.com>,
	Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>,
	Will Deacon <will@kernel.org>, Han Xu <han.xu@nxp.com>,
	Haibo Chen <haibo.chen@nxp.com>,
	Yogesh Gaur <yogeshgaur.83@gmail.com>,
	Mark Brown <broonie@kernel.org>, Lee Jones <lee@kernel.org>,
	Pavel Machek <pavel@kernel.org>, Andrew Davis <afd@ti.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-kernel@vger.kernel.org, Bartosz Golaszewski <brgl@bgdev.pl>,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>,
	linux-spi@vger.kernel.org, imx@lists.linux.dev,
	linux-leds@vger.kernel.org
Subject: Re: [PATCH v7 3/3] locking/mutex: Mark devm_mutex_init() as __must_check
Date: Tue, 17 Jun 2025 10:32:33 -0700	[thread overview]
Message-ID: <aFGmsXTaVAgfRc_j@tardis.local> (raw)
In-Reply-To: <20250617-must_check-devm_mutex_init-v7-3-d9e449f4d224@weissschuh.net>

On Tue, Jun 17, 2025 at 07:08:14PM +0200, Thomas Weißschuh wrote:
> devm_mutex_init() can fail. With CONFIG_DEBUG_MUTEXES=y the mutex will be
> marked as unusable and trigger errors on usage.
> Enforce all callers check the return value through the compiler.
> 
> As devm_mutex_init() itself is a macro, it can not be annotated
> directly. Annotate __devm_mutex_init() instead.
> Unfortunately __must_check/warn_unused_result don't propagate through
> statement expression. So move the statement expression into the argument
> list of the call to __devm_mutex_init() through a helper macro.
> 

Given it's Peter's suggestion [1] for __mutex_init_ret(), I think a

Suggested-by: Peter Zijlstra <peterz@infradead.org>

should be added here. No need for a new version just for that. If patch
#1 got some reviews, I would queue this in my lockdep-for-tip branch.
Hopefully these will land v6.17.

[1]: https://lore.kernel.org/all/20250204090106.GP7145@noisy.programming.kicks-ass.net/

Regards,
Boqun

> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
>  include/linux/mutex.h | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/include/linux/mutex.h b/include/linux/mutex.h
> index a039fa8c17807c700d3b61193feac0418cad1243..00afd341d293ddfcc0a427b576efdce044955e38 100644
> --- a/include/linux/mutex.h
> +++ b/include/linux/mutex.h
> @@ -126,11 +126,11 @@ do {							\
>  
>  #ifdef CONFIG_DEBUG_MUTEXES
>  
> -int __devm_mutex_init(struct device *dev, struct mutex *lock);
> +int __must_check __devm_mutex_init(struct device *dev, struct mutex *lock);
>  
>  #else
>  
> -static inline int __devm_mutex_init(struct device *dev, struct mutex *lock)
> +static inline int __must_check __devm_mutex_init(struct device *dev, struct mutex *lock)
>  {
>  	/*
>  	 * When CONFIG_DEBUG_MUTEXES is off mutex_destroy() is just a nop so
> @@ -141,14 +141,17 @@ static inline int __devm_mutex_init(struct device *dev, struct mutex *lock)
>  
>  #endif
>  
> -#define devm_mutex_init(dev, mutex)			\
> +#define __mutex_init_ret(mutex)				\
>  ({							\
>  	typeof(mutex) mutex_ = (mutex);			\
>  							\
>  	mutex_init(mutex_);				\
> -	__devm_mutex_init(dev, mutex_);			\
> +	mutex_;						\
>  })
>  
> +#define devm_mutex_init(dev, mutex) \
> +	__devm_mutex_init(dev, __mutex_init_ret(mutex))
> +
>  /*
>   * See kernel/locking/mutex.c for detailed documentation of these APIs.
>   * Also see Documentation/locking/mutex-design.rst.
> 
> -- 
> 2.50.0
> 

  reply	other threads:[~2025-06-17 17:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-17 17:08 [PATCH v7 0/3] locking/mutex: Mark devm_mutex_init() as __must_check Thomas Weißschuh
2025-06-17 17:08 ` [PATCH v7 1/3] spi: spi-nxp-fspi: check return value of devm_mutex_init() Thomas Weißschuh
2025-06-17 19:02   ` Mark Brown
2025-07-19 17:40   ` [tip: locking/core] spi: spi-nxp-fspi: Check " tip-bot2 for Thomas Weißschuh
2025-06-17 17:08 ` [PATCH v7 2/3] leds: lp8860: " Thomas Weißschuh
2025-06-19 12:34   ` (subset) " Lee Jones
2025-06-19 15:34     ` Thomas Weißschuh
2025-06-25  9:04       ` Lee Jones
2025-06-26 10:54         ` Thomas Weißschuh
2025-06-27 12:58           ` Lee Jones
2025-07-19 17:40   ` [tip: locking/core] " tip-bot2 for Thomas Weißschuh
2025-06-17 17:08 ` [PATCH v7 3/3] locking/mutex: Mark devm_mutex_init() as __must_check Thomas Weißschuh
2025-06-17 17:32   ` Boqun Feng [this message]
2025-07-19 17:40   ` [tip: locking/core] " tip-bot2 for Thomas Weißschuh
2025-07-11 22:12 ` [PATCH v7 0/3] " Boqun Feng

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=aFGmsXTaVAgfRc_j@tardis.local \
    --to=boqun.feng@gmail.com \
    --cc=afd@ti.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=brgl@bgdev.pl \
    --cc=broonie@kernel.org \
    --cc=haibo.chen@nxp.com \
    --cc=han.xu@nxp.com \
    --cc=imx@lists.linux.dev \
    --cc=lee@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux@weissschuh.net \
    --cc=longman@redhat.com \
    --cc=mingo@redhat.com \
    --cc=pavel@kernel.org \
    --cc=peterz@infradead.org \
    --cc=vicentiu.galanopulo@remote-tech.co.uk \
    --cc=will@kernel.org \
    --cc=yogeshgaur.83@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.