* [PATCH 15/62] Input: synaptics-rmi4 - fix a locking bug in an error path [not found] <20260223220102.2158611-1-bart.vanassche@linux.dev> @ 2026-02-23 22:00 ` Bart Van Assche 0 siblings, 0 replies; 5+ messages in thread From: Bart Van Assche @ 2026-02-23 22:00 UTC (permalink / raw) To: Peter Zijlstra Cc: Ingo Molnar, Will Deacon, Boqun Feng, Waiman Long, linux-kernel, Marco Elver, Christoph Hellwig, Steven Rostedt, Nick Desaulniers, Nathan Chancellor, Kees Cook, Jann Horn, Bart Van Assche, Dmitry Torokhov, Nick Dyer, linux-input From: Bart Van Assche <bvanassche@acm.org> Lock f54->data_mutex before the first 'goto error' statement since jumping to the 'error' label causes that mutex to be unlocked. This bug has been detected by the Clang thread-safety checker. Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Nick Dyer <nick@shmanahar.org> Cc: linux-input@vger.kernel.org Fixes: 3a762dbd5347 ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics") Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- drivers/input/rmi4/rmi_f54.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c index ac4041a69fcd..fd57ebb1cb50 100644 --- a/drivers/input/rmi4/rmi_f54.c +++ b/drivers/input/rmi4/rmi_f54.c @@ -539,6 +539,9 @@ static void rmi_f54_work(struct work_struct *work) int i; report_size = rmi_f54_get_report_size(f54); + + mutex_lock(&f54->data_mutex); + if (report_size == 0) { dev_err(&fn->dev, "Bad report size, report type=%d\n", f54->report_type); @@ -546,8 +549,6 @@ static void rmi_f54_work(struct work_struct *work) goto error; /* retry won't help */ } - mutex_lock(&f54->data_mutex); - /* * Need to check if command has completed. * If not try again later. ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <20260223215118.2154194-1-bvanassche@acm.org>]
* [PATCH 15/62] Input: synaptics-rmi4 - fix a locking bug in an error path [not found] <20260223215118.2154194-1-bvanassche@acm.org> @ 2026-02-23 21:50 ` Bart Van Assche 2026-02-23 21:58 ` Dmitry Torokhov 0 siblings, 1 reply; 5+ messages in thread From: Bart Van Assche @ 2026-02-23 21:50 UTC (permalink / raw) To: Peter Zijlstra Cc: Ingo Molnar, Will Deacon, Boqun Feng, Waiman Long, linux-kernel, Marco Elver, Christoph Hellwig, Steven Rostedt, Nick Desaulniers, Nathan Chancellor, Kees Cook, Jann Horn, Bart Van Assche, Dmitry Torokhov, Nick Dyer, linux-input Lock f54->data_mutex before the first 'goto error' statement since jumping to the 'error' label causes that mutex to be unlocked. This bug has been detected by the Clang thread-safety checker. Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Nick Dyer <nick@shmanahar.org> Cc: linux-input@vger.kernel.org Fixes: 3a762dbd5347 ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics") Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- drivers/input/rmi4/rmi_f54.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c index ac4041a69fcd..fd57ebb1cb50 100644 --- a/drivers/input/rmi4/rmi_f54.c +++ b/drivers/input/rmi4/rmi_f54.c @@ -539,6 +539,9 @@ static void rmi_f54_work(struct work_struct *work) int i; report_size = rmi_f54_get_report_size(f54); + + mutex_lock(&f54->data_mutex); + if (report_size == 0) { dev_err(&fn->dev, "Bad report size, report type=%d\n", f54->report_type); @@ -546,8 +549,6 @@ static void rmi_f54_work(struct work_struct *work) goto error; /* retry won't help */ } - mutex_lock(&f54->data_mutex); - /* * Need to check if command has completed. * If not try again later. ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 15/62] Input: synaptics-rmi4 - fix a locking bug in an error path 2026-02-23 21:50 ` Bart Van Assche @ 2026-02-23 21:58 ` Dmitry Torokhov 2026-02-23 22:05 ` Bart Van Assche 0 siblings, 1 reply; 5+ messages in thread From: Dmitry Torokhov @ 2026-02-23 21:58 UTC (permalink / raw) To: Bart Van Assche Cc: Peter Zijlstra, Ingo Molnar, Will Deacon, Boqun Feng, Waiman Long, linux-kernel, Marco Elver, Christoph Hellwig, Steven Rostedt, Nick Desaulniers, Nathan Chancellor, Kees Cook, Jann Horn, Nick Dyer, linux-input Hi Bart, On Mon, Feb 23, 2026 at 01:50:30PM -0800, Bart Van Assche wrote: > Lock f54->data_mutex before the first 'goto error' statement since > jumping to the 'error' label causes that mutex to be unlocked. > > This bug has been detected by the Clang thread-safety checker. > > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Cc: Nick Dyer <nick@shmanahar.org> > Cc: linux-input@vger.kernel.org > Fixes: 3a762dbd5347 ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics") > Signed-off-by: Bart Van Assche <bvanassche@acm.org> > --- > drivers/input/rmi4/rmi_f54.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c > index ac4041a69fcd..fd57ebb1cb50 100644 > --- a/drivers/input/rmi4/rmi_f54.c > +++ b/drivers/input/rmi4/rmi_f54.c > @@ -539,6 +539,9 @@ static void rmi_f54_work(struct work_struct *work) > int i; > > report_size = rmi_f54_get_report_size(f54); > + > + mutex_lock(&f54->data_mutex); > + Thank you for the patch. Do you mind if I move mutex_lock() above the call to rmi_f54_get_report_size()? It does not extend critical section by much, and I think logically makes more sense. > if (report_size == 0) { > dev_err(&fn->dev, "Bad report size, report type=%d\n", > f54->report_type); > @@ -546,8 +549,6 @@ static void rmi_f54_work(struct work_struct *work) > goto error; /* retry won't help */ > } > > - mutex_lock(&f54->data_mutex); > - > /* > * Need to check if command has completed. > * If not try again later. Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 15/62] Input: synaptics-rmi4 - fix a locking bug in an error path 2026-02-23 21:58 ` Dmitry Torokhov @ 2026-02-23 22:05 ` Bart Van Assche 0 siblings, 0 replies; 5+ messages in thread From: Bart Van Assche @ 2026-02-23 22:05 UTC (permalink / raw) To: Dmitry Torokhov Cc: Peter Zijlstra, Ingo Molnar, Will Deacon, Boqun Feng, Waiman Long, linux-kernel, Marco Elver, Christoph Hellwig, Steven Rostedt, Nick Desaulniers, Nathan Chancellor, Kees Cook, Jann Horn, Nick Dyer, linux-input On 2/23/26 1:58 PM, Dmitry Torokhov wrote: > Hi Bart, > > On Mon, Feb 23, 2026 at 01:50:30PM -0800, Bart Van Assche wrote: >> Lock f54->data_mutex before the first 'goto error' statement since >> jumping to the 'error' label causes that mutex to be unlocked. >> >> This bug has been detected by the Clang thread-safety checker. >> >> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> >> Cc: Nick Dyer <nick@shmanahar.org> >> Cc: linux-input@vger.kernel.org >> Fixes: 3a762dbd5347 ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics") >> Signed-off-by: Bart Van Assche <bvanassche@acm.org> >> --- >> drivers/input/rmi4/rmi_f54.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c >> index ac4041a69fcd..fd57ebb1cb50 100644 >> --- a/drivers/input/rmi4/rmi_f54.c >> +++ b/drivers/input/rmi4/rmi_f54.c >> @@ -539,6 +539,9 @@ static void rmi_f54_work(struct work_struct *work) >> int i; >> >> report_size = rmi_f54_get_report_size(f54); >> + >> + mutex_lock(&f54->data_mutex); >> + > > Thank you for the patch. Do you mind if I move mutex_lock() above the > call to rmi_f54_get_report_size()? It does not extend critical section > by much, and I think logically makes more sense. That sounds good to me. Please keep in mind that I'm not familiar with the rmi4 driver. Thanks, Bart. ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20260223214950.2153735-1-bvanassche@acm.org>]
* [PATCH 15/62] Input: synaptics-rmi4 - fix a locking bug in an error path [not found] <20260223214950.2153735-1-bvanassche@acm.org> @ 2026-02-23 21:49 ` Bart Van Assche 0 siblings, 0 replies; 5+ messages in thread From: Bart Van Assche @ 2026-02-23 21:49 UTC (permalink / raw) To: Peter Zijlstra; +Cc: Bart Van Assche, Dmitry Torokhov, Nick Dyer, linux-input Lock f54->data_mutex before the first 'goto error' statement since jumping to the 'error' label causes that mutex to be unlocked. This bug has been detected by the Clang thread-safety checker. Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Nick Dyer <nick@shmanahar.org> Cc: linux-input@vger.kernel.org Fixes: 3a762dbd5347 ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics") Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- drivers/input/rmi4/rmi_f54.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/input/rmi4/rmi_f54.c b/drivers/input/rmi4/rmi_f54.c index ac4041a69fcd..fd57ebb1cb50 100644 --- a/drivers/input/rmi4/rmi_f54.c +++ b/drivers/input/rmi4/rmi_f54.c @@ -539,6 +539,9 @@ static void rmi_f54_work(struct work_struct *work) int i; report_size = rmi_f54_get_report_size(f54); + + mutex_lock(&f54->data_mutex); + if (report_size == 0) { dev_err(&fn->dev, "Bad report size, report type=%d\n", f54->report_type); @@ -546,8 +549,6 @@ static void rmi_f54_work(struct work_struct *work) goto error; /* retry won't help */ } - mutex_lock(&f54->data_mutex); - /* * Need to check if command has completed. * If not try again later. ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-23 22:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260223220102.2158611-1-bart.vanassche@linux.dev>
2026-02-23 22:00 ` [PATCH 15/62] Input: synaptics-rmi4 - fix a locking bug in an error path Bart Van Assche
[not found] <20260223215118.2154194-1-bvanassche@acm.org>
2026-02-23 21:50 ` Bart Van Assche
2026-02-23 21:58 ` Dmitry Torokhov
2026-02-23 22:05 ` Bart Van Assche
[not found] <20260223214950.2153735-1-bvanassche@acm.org>
2026-02-23 21:49 ` Bart Van Assche
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox