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@xxxxxxxxxxx> > Cc: Jeff Johnson <jeff.johnson@xxxxxxxxxxxxxxxx> > Fixes: ee146e11b4d9 ("wifi: ath12k: refactor core start based on hardware group") > Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> > --- > 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)