[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7633c19b-2aab-4f2a-8c11-27425f7299ae@oss.qualcomm.com>
Date: Thu, 6 Feb 2025 10:25:13 -0800
From: Jeff Johnson <jeff.johnson@....qualcomm.com>
To: Bart Van Assche <bvanassche@....org>,
Peter Zijlstra <peterz@...radead.org>
Cc: Will Deacon <will@...nel.org>, Christoph Hellwig <hch@....de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Marco Elver <elver@...gle.com>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Nathan Chancellor <nathan@...nel.org>, Kees Cook <kees@...nel.org>,
Jann Horn <jannh@...gle.com>, linux-kernel@...r.kernel.org,
Karthikeyan Periyasamy <quic_periyasa@...cinc.com>,
linux-wireless <linux-wireless@...r.kernel.org>,
"ath12k@...ts.infradead.org" <ath12k@...ts.infradead.org>
Subject: Re: [PATCH RFC 25/33] wifi: ath12k: Fix locking in error paths
On 2/6/2025 9:51 AM, Bart Van Assche wrote:
> If ag->mutex has been locked, unlock it before returning. If it has not
> been locked, do not unlock it before returning. These bugs have been
> detected by the Clang thread-safety analyzer.
>
> Cc: Karthikeyan Periyasamy <quic_periyasa@...cinc.com>
> Cc: Jeff Johnson <jeff.johnson@....qualcomm.com>
> Fixes: ee146e11b4d9 ("wifi: ath12k: refactor core start based on hardware group")
> Signed-off-by: Bart Van Assche <bvanassche@....org>
> ---
> drivers/net/wireless/ath/ath12k/core.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
> index 0606116d6b9c..212cd935e60a 100644
> --- a/drivers/net/wireless/ath/ath12k/core.c
> +++ b/drivers/net/wireless/ath/ath12k/core.c
> @@ -1122,16 +1122,18 @@ int ath12k_core_qmi_firmware_ready(struct ath12k_base *ab)
> ath12k_core_stop(ab);
> mutex_unlock(&ab->core_lock);
> }
> + mutex_unlock(&ag->mutex);
> goto exit;
>
> err_dp_free:
> ath12k_dp_free(ab);
> mutex_unlock(&ab->core_lock);
> + mutex_unlock(&ag->mutex);
> +
> err_firmware_stop:
> ath12k_qmi_firmware_stop(ab);
>
> exit:
> - mutex_unlock(&ag->mutex);
> return ret;
> }
>
This looks like a legitimate issue.
Can you submit this as a single patch and cc the ath12k and linux-wireless
lists (as I've done in this reply)
Powered by blists - more mailing lists