All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tudor Ambarus <tudor.ambarus@linaro.org>
To: Runyu Xiao <runyu.xiao@seu.edu.cn>
Cc: Pratyush Yadav <pratyush@kernel.org>,
	Michael Walle <mwalle@kernel.org>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org, jianhao.xu@seu.edu.cn
Subject: Re: [PATCH v3] mtd: spi-nor: use guard() in spi_nor_rww_start_exclusive
Date: Wed, 12 Aug 2026 12:49:20 +0300	[thread overview]
Message-ID: <5a4670bb-e24c-4adb-889a-01f54f04d32c@linaro.org> (raw)
In-Reply-To: <20260811083111.403453-1-runyu.xiao@seu.edu.cn>



On 8/11/26 11:31 AM, Runyu Xiao wrote:
> Commit 03e7bb864d9a ("mtd: spi-nor: use scope-based mutex cleanup
> helpers") converted the RWW start helpers to scoped mutex cleanup, but
> left spi_nor_rww_start_exclusive() using a plain mutex_lock().
> 
> spi_nor_rww_start_exclusive() is used as a wait_event_killable()
> condition. When it returns false on the busy path, the raw mutex_lock()
> leaves nor->lock held and blocks the operation that must clear the RWW
> state in spi_nor_rww_end_exclusive().
> 
> Use guard(mutex) here as well so this helper matches the other RWW
> start helpers and releases nor->lock on the false return path.
> 
> Fixes: 03e7bb864d9a ("mtd: spi-nor: use scope-based mutex cleanup helpers")
> Cc: stable@vger.kernel.org
> Signed-off-by: Runyu Xiao <runyu.xiao@seu.edu.cn>

Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

> ---
> Changes in v3:
> - Reframe the changelog around the scoped-helper conversion that missed
>   spi_nor_rww_start_exclusive().
> 
> Changes in v2:
> - Replace the analysis-style explanation with a short maintainer-facing
>   description of the busy-path lock hold.
> - Keep the fix focused on using guard(mutex) so the mutex is released on
>   both paths.
> 
> drivers/mtd/spi-nor/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index ccf4396cdcd0..8bc117b46e02 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -1310,7 +1310,7 @@ static bool spi_nor_rww_start_exclusive(struct spi_nor *nor)
>  {
>  	struct spi_nor_rww *rww = &nor->rww;
>  
> -	mutex_lock(&nor->lock);
> +	guard(mutex)(&nor->lock);
>  
>  	if (rww->ongoing_io || rww->ongoing_rd || rww->ongoing_pe)
>  		return false;


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Tudor Ambarus <tudor.ambarus@linaro.org>
To: Runyu Xiao <runyu.xiao@seu.edu.cn>
Cc: Pratyush Yadav <pratyush@kernel.org>,
	Michael Walle <mwalle@kernel.org>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org, jianhao.xu@seu.edu.cn
Subject: Re: [PATCH v3] mtd: spi-nor: use guard() in spi_nor_rww_start_exclusive
Date: Wed, 12 Aug 2026 12:49:20 +0300	[thread overview]
Message-ID: <5a4670bb-e24c-4adb-889a-01f54f04d32c@linaro.org> (raw)
In-Reply-To: <20260811083111.403453-1-runyu.xiao@seu.edu.cn>



On 8/11/26 11:31 AM, Runyu Xiao wrote:
> Commit 03e7bb864d9a ("mtd: spi-nor: use scope-based mutex cleanup
> helpers") converted the RWW start helpers to scoped mutex cleanup, but
> left spi_nor_rww_start_exclusive() using a plain mutex_lock().
> 
> spi_nor_rww_start_exclusive() is used as a wait_event_killable()
> condition. When it returns false on the busy path, the raw mutex_lock()
> leaves nor->lock held and blocks the operation that must clear the RWW
> state in spi_nor_rww_end_exclusive().
> 
> Use guard(mutex) here as well so this helper matches the other RWW
> start helpers and releases nor->lock on the false return path.
> 
> Fixes: 03e7bb864d9a ("mtd: spi-nor: use scope-based mutex cleanup helpers")
> Cc: stable@vger.kernel.org
> Signed-off-by: Runyu Xiao <runyu.xiao@seu.edu.cn>

Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

> ---
> Changes in v3:
> - Reframe the changelog around the scoped-helper conversion that missed
>   spi_nor_rww_start_exclusive().
> 
> Changes in v2:
> - Replace the analysis-style explanation with a short maintainer-facing
>   description of the busy-path lock hold.
> - Keep the fix focused on using guard(mutex) so the mutex is released on
>   both paths.
> 
> drivers/mtd/spi-nor/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index ccf4396cdcd0..8bc117b46e02 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -1310,7 +1310,7 @@ static bool spi_nor_rww_start_exclusive(struct spi_nor *nor)
>  {
>  	struct spi_nor_rww *rww = &nor->rww;
>  
> -	mutex_lock(&nor->lock);
> +	guard(mutex)(&nor->lock);
>  
>  	if (rww->ongoing_io || rww->ongoing_rd || rww->ongoing_pe)
>  		return false;


  parent reply	other threads:[~2026-08-12  9:49 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-09  8:42 [PATCH] mtd: spi-nor: scope the exclusive RWW lock Runyu Xiao
2026-08-09  8:42 ` Runyu Xiao
2026-08-10  8:25 ` Michael Walle
2026-08-10  8:25   ` Michael Walle
2026-08-10 12:47   ` Miquel Raynal
2026-08-10 12:47     ` Miquel Raynal
2026-08-11  4:13   ` [PATCH v2] " Runyu Xiao
2026-08-11  4:13     ` Runyu Xiao
2026-08-11  7:51     ` Miquel Raynal
2026-08-11  7:51       ` Miquel Raynal
2026-08-11  8:31     ` [PATCH v3] mtd: spi-nor: use guard() in spi_nor_rww_start_exclusive Runyu Xiao
2026-08-11  8:31       ` Runyu Xiao
2026-08-11  8:41       ` Miquel Raynal
2026-08-11  8:41         ` Miquel Raynal
2026-08-11 10:11       ` Tudor Ambarus
2026-08-11 10:11         ` Tudor Ambarus
2026-08-11 10:42         ` Tudor Ambarus
2026-08-11 10:42           ` Tudor Ambarus
2026-08-11 14:36           ` Miquel Raynal
2026-08-11 14:36             ` Miquel Raynal
2026-08-11 15:38             ` Miquel Raynal
2026-08-11 15:38               ` Miquel Raynal
2026-08-12 10:19               ` Tudor Ambarus
2026-08-12 10:19                 ` Tudor Ambarus
2026-08-19 14:03                 ` [PATCH v4 0/2] mtd: spi-nor: core: Fix RWW wait locking Runyu Xiao
2026-08-19 14:03                   ` Runyu Xiao
2026-08-19 14:03                   ` [PATCH v4 1/2] mtd: spi-nor: core: Fix mutex leak in spi_nor_rww_start_exclusive() Runyu Xiao
2026-08-19 14:03                     ` Runyu Xiao
2026-08-25 12:29                     ` Miquel Raynal
2026-08-25 12:29                       ` Miquel Raynal
2026-08-27  8:26                       ` [PATCH v5] " Runyu Xiao
2026-08-27  8:33                         ` Miquel Raynal
2026-08-27  8:45                           ` Runyu Xiao
2026-08-19 14:03                   ` [PATCH v4 2/2] mtd: spi-nor: core: Unprepare after interrupted RWW wait Runyu Xiao
2026-08-19 14:03                     ` Runyu Xiao
2026-08-25 12:18                     ` Miquel Raynal
2026-08-25 12:18                       ` Miquel Raynal
2026-08-12  9:49       ` Tudor Ambarus [this message]
2026-08-12  9:49         ` [PATCH v3] mtd: spi-nor: use guard() in spi_nor_rww_start_exclusive Tudor Ambarus
2026-08-11  8:50     ` [PATCH v2] mtd: spi-nor: scope the exclusive RWW lock Michael Walle
2026-08-11  8:50       ` Michael Walle
2026-08-11 10:05   ` [PATCH] " Tudor Ambarus
2026-08-11 10:05     ` Tudor Ambarus
2026-08-12  6:14     ` Michael Walle
2026-08-12  6:14       ` Michael Walle
2026-08-12  9:48       ` Tudor Ambarus
2026-08-12  9:48         ` Tudor Ambarus

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=5a4670bb-e24c-4adb-889a-01f54f04d32c@linaro.org \
    --to=tudor.ambarus@linaro.org \
    --cc=jianhao.xu@seu.edu.cn \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=mwalle@kernel.org \
    --cc=pratyush@kernel.org \
    --cc=richard@nod.at \
    --cc=runyu.xiao@seu.edu.cn \
    --cc=stable@vger.kernel.org \
    --cc=vigneshr@ti.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.