[PATCH] sound:hdmi:fix without unlocked before return

Markus Elfring Markus.Elfring at web.de
Sun Apr 26 19:00:54 CEST 2020


> After add sanity check to pass klockwork check,
> The spdif_mutex should be unlock before return true
> in check_non_pcm_per_cvt().

How do you think about a wording variant like the following?

   Subject:
   [PATCH v2] ALSA: hda/hdmi: Unlock a mutex always before returning from check_non_pcm_per_cvt()

   Change description (according to a solution alternative):
   The exception handling was incomplete in an if branch for
   a null pointer check of the variable “spdif”.
   Thus assign an appropriate value to the local variable “non_pcm”
   by using a conditional operator instead.
   A mutex is also appropriately unlocked then.


…
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -1848,8 +1848,10 @@ static bool check_non_pcm_per_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
…
> -	if (WARN_ON(spdif == NULL))
> +	if (WARN_ON(spdif == NULL)) {
> +		mutex_unlock(&codec->spdif_mutex);
>  		return true;
> +	}
>  	non_pcm = !!(spdif->status & IEC958_AES0_NONAUDIO);

-	if (WARN_ON(spdif == NULL))
-		return true;
-	non_pcm = !!(spdif->status & IEC958_AES0_NONAUDIO);
+	non_pcm = WARN_ON(!spdif)
+		  ? true
+		  : !!(spdif->status & IEC958_AES0_NONAUDIO);
 	mutex_unlock(&codec->spdif_mutex);
 	return non_pcm;
 }


Would you like to add the tag “Fixes” to the change description?

Regards,
Markus


More information about the Alsa-devel mailing list