Commit 7adaaee5 authored by Bart Van Assche's avatar Bart Van Assche Committed by Dmitry Torokhov
Browse files

Input: synaptics-rmi4 - fix a locking bug in an error path



Lock f54->data_mutex when entering the function statement since jumping
to the 'error' label when checking report_size fails causes that mutex
to be unlocked.

This bug has been detected by the Clang thread-safety checker.

Fixes: 3a762dbd ("[media] Input: synaptics-rmi4 - add support for F54 diagnostics")
Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20260223215118.2154194-16-bvanassche@acm.org


Cc: stable@vger.kernel.org
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 5839419c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -538,6 +538,8 @@ static void rmi_f54_work(struct work_struct *work)
	int error;
	int i;

	mutex_lock(&f54->data_mutex);

	report_size = rmi_f54_get_report_size(f54);
	if (report_size == 0) {
		dev_err(&fn->dev, "Bad report size, report type=%d\n",
@@ -546,8 +548,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.