mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] staging: nvec: use guard(mutex) in nvec_write_sync()
       [not found] <20261012171312.5998-1-deaner92.ref@yahoo.com>
@ 2026-10-12 17:13 ` Jeremy Dean Clifton
  2026-10-12 20:45   ` Julia Lawall
  0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Dean Clifton @ 2026-10-12 17:13 UTC (permalink / raw)
  To: Marc Dietrich, Greg Kroah-Hartman
  Cc: ac100, linux-tegra, linux-staging, linux-kernel, outreachy,
	Jeremy Dean Clifton

Use guard(mutex) for sync_write_mutex. The lock is released
automatically on every return path. This removes the three
mutex_unlock() calls and simplifies the -ENOMEM error path.

No functional change.

Assisted-by: LLM
Signed-off-by: Jeremy Dean Clifton <deaner92@yahoo.com>
---
 drivers/staging/nvec/nvec.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
index 41cbdfdc1da6..716b1b482568 100644
--- a/drivers/staging/nvec/nvec.c
+++ b/drivers/staging/nvec/nvec.c
@@ -298,17 +298,15 @@ int nvec_write_sync(struct nvec_chip *nvec,
 		    const unsigned char *data, short size,
 		    struct nvec_msg **msg)
 {
-	mutex_lock(&nvec->sync_write_mutex);
+	guard(mutex)(&nvec->sync_write_mutex);
 
 	if (msg)
 		*msg = NULL;
 
 	nvec->sync_write_pending = (data[1] << 8) + data[0];
 
-	if (nvec_write_async(nvec, data, size) < 0) {
-		mutex_unlock(&nvec->sync_write_mutex);
+	if (nvec_write_async(nvec, data, size) < 0)
 		return -ENOMEM;
-	}
 
 	dev_dbg(nvec->dev, "nvec_sync_write: 0x%04x\n",
 		nvec->sync_write_pending);
@@ -316,7 +314,6 @@ int nvec_write_sync(struct nvec_chip *nvec,
 					  msecs_to_jiffies(2000)))) {
 		dev_warn(nvec->dev,
 			 "Timeout waiting for sync write to complete\n");
-		mutex_unlock(&nvec->sync_write_mutex);
 		return -ETIMEDOUT;
 	}
 
@@ -327,8 +324,6 @@ int nvec_write_sync(struct nvec_chip *nvec,
 	else
 		nvec_msg_free(nvec, nvec->last_sync_msg);
 
-	mutex_unlock(&nvec->sync_write_mutex);
-
 	return 0;
 }
 EXPORT_SYMBOL(nvec_write_sync);
-- 
2.43.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] staging: nvec: use guard(mutex) in nvec_write_sync()
  2026-10-12 17:13 ` [PATCH] staging: nvec: use guard(mutex) in nvec_write_sync() Jeremy Dean Clifton
@ 2026-10-12 20:45   ` Julia Lawall
  2026-10-12 21:41     ` Jeremy Clifton
  0 siblings, 1 reply; 4+ messages in thread
From: Julia Lawall @ 2026-10-12 20:45 UTC (permalink / raw)
  To: Jeremy Dean Clifton
  Cc: Marc Dietrich, Greg Kroah-Hartman, ac100, linux-tegra,
	linux-staging, linux-kernel, outreachy



On Mon, 12 Oct 2026, Jeremy Dean Clifton wrote:

> Use guard(mutex) for sync_write_mutex. The lock is released
> automatically on every return path.

The second sentence seems ambiguous to me.  Is this the motivation for
doing the patch or the result of the patch.

> This removes the three
> mutex_unlock() calls and simplifies the -ENOMEM error path.
>
> No functional change.
>
> Assisted-by: LLM

For Outreachy, I would encourage you to do the work by hand.  You are
welcome to check the work with an LLM.  The goal in the application period
is to learn how the patch submission process works, not necessarily to do
it as fast as possible.

Feel free to introduce yourself on the list as well.

julia

> Signed-off-by: Jeremy Dean Clifton <deaner92@yahoo.com>
> ---
>  drivers/staging/nvec/nvec.c | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c
> index 41cbdfdc1da6..716b1b482568 100644
> --- a/drivers/staging/nvec/nvec.c
> +++ b/drivers/staging/nvec/nvec.c
> @@ -298,17 +298,15 @@ int nvec_write_sync(struct nvec_chip *nvec,
>  		    const unsigned char *data, short size,
>  		    struct nvec_msg **msg)
>  {
> -	mutex_lock(&nvec->sync_write_mutex);
> +	guard(mutex)(&nvec->sync_write_mutex);
>
>  	if (msg)
>  		*msg = NULL;
>
>  	nvec->sync_write_pending = (data[1] << 8) + data[0];
>
> -	if (nvec_write_async(nvec, data, size) < 0) {
> -		mutex_unlock(&nvec->sync_write_mutex);
> +	if (nvec_write_async(nvec, data, size) < 0)
>  		return -ENOMEM;
> -	}
>
>  	dev_dbg(nvec->dev, "nvec_sync_write: 0x%04x\n",
>  		nvec->sync_write_pending);
> @@ -316,7 +314,6 @@ int nvec_write_sync(struct nvec_chip *nvec,
>  					  msecs_to_jiffies(2000)))) {
>  		dev_warn(nvec->dev,
>  			 "Timeout waiting for sync write to complete\n");
> -		mutex_unlock(&nvec->sync_write_mutex);
>  		return -ETIMEDOUT;
>  	}
>
> @@ -327,8 +324,6 @@ int nvec_write_sync(struct nvec_chip *nvec,
>  	else
>  		nvec_msg_free(nvec, nvec->last_sync_msg);
>
> -	mutex_unlock(&nvec->sync_write_mutex);
> -
>  	return 0;
>  }
>  EXPORT_SYMBOL(nvec_write_sync);
> --
> 2.43.0
>
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] staging: nvec: use guard(mutex) in nvec_write_sync()
  2026-10-12 20:45   ` Julia Lawall
@ 2026-10-12 21:41     ` Jeremy Clifton
  2026-10-12 21:48       ` Julia Lawall
  0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Clifton @ 2026-10-12 21:41 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Marc Dietrich, Greg Kroah-Hartman, ac100, linux-tegra,
	linux-staging, linux-kernel, outreachy

Thank you so much for your guidance and feedback.

It is the result that the patch will produce. All the unlock calls will
be deleted and the out of memory path will have no braces, as per
the style guidelines.

The motivation behind the patch is to defer usage of manual locks
for new and improved guards, disallowing lock leaks.

This way, there can be no error producing path by not calling unlock.

Shall I send a v2 with motivation included?

On 10/12/26 2:45 PM, Julia Lawall wrote:
> Is this the motivation for
> doing the patch or the result of the patch.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] staging: nvec: use guard(mutex) in nvec_write_sync()
  2026-10-12 21:41     ` Jeremy Clifton
@ 2026-10-12 21:48       ` Julia Lawall
  0 siblings, 0 replies; 4+ messages in thread
From: Julia Lawall @ 2026-10-12 21:48 UTC (permalink / raw)
  To: Jeremy Clifton
  Cc: Marc Dietrich, Greg Kroah-Hartman, ac100, linux-tegra,
	linux-staging, linux-kernel, outreachy



On Mon, 12 Oct 2026, Jeremy Clifton wrote:

> Thank you so much for your guidance and feedback.
>
> It is the result that the patch will produce. All the unlock calls will
> be deleted and the out of memory path will have no braces, as per
> the style guidelines.
>
> The motivation behind the patch is to defer usage of manual locks
> for new and improved guards, disallowing lock leaks.
>
> This way, there can be no error producing path by not calling unlock.
>
> Shall I send a v2 with motivation included?

Please adjust the second sentence to be clear that it is referring to the
result, not the initial state.  If you would like to add something about
the motivation, that would probably be good too.

thanks,
julia

>
> On 10/12/26 2:45 PM, Julia Lawall wrote:
> > Is this the motivation for
> > doing the patch or the result of the patch.
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-12 21:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20261012171312.5998-1-deaner92.ref@yahoo.com>
2026-10-12 17:13 ` [PATCH] staging: nvec: use guard(mutex) in nvec_write_sync() Jeremy Dean Clifton
2026-10-12 20:45   ` Julia Lawall
2026-10-12 21:41     ` Jeremy Clifton
2026-10-12 21:48       ` Julia Lawall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®