diff mbox series

[2/2] ALSA: compress: Initialize mutex in snd_compress_new()

Message ID 20210714162424.4412-3-tiwai@suse.de (mailing list archive)
State New, archived
Headers show
Series ALSA: compress: Cleanup and a potential fix | expand

Commit Message

Takashi Iwai July 14, 2021, 4:24 p.m. UTC
Currently the snd_compr.lock mutex isn't initialized in the API
functions although the lock is used many places in other code in
compress offload API.  It's because the object was expected to be
initialized via snd_compress_register(), but this was never used by
ASoC, which is the only user.  Instead, ASoC initializes the mutex by
itself, and this is error-prone.

This patch moves the mutex initialization into the more appropriate
place, snd_compress_new(), for avoiding the missing init.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/core/compress_offload.c | 1 +
 sound/soc/soc-compress.c      | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Brown July 14, 2021, 4:29 p.m. UTC | #1
On Wed, Jul 14, 2021 at 06:24:24PM +0200, Takashi Iwai wrote:
> Currently the snd_compr.lock mutex isn't initialized in the API
> functions although the lock is used many places in other code in
> compress offload API.  It's because the object was expected to be
> initialized via snd_compress_register(), but this was never used by
> ASoC, which is the only user.  Instead, ASoC initializes the mutex by
> itself, and this is error-prone.

Reviewed-by: Mark Brown <broonie@kernel.org>
diff mbox series

Patch

diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index ed5546ae300a..de514ec8c83d 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -1177,6 +1177,7 @@  int snd_compress_new(struct snd_card *card, int device,
 	compr->card = card;
 	compr->device = device;
 	compr->direction = dirn;
+	mutex_init(&compr->lock);
 
 	snd_compress_set_id(compr, id);
 
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index b4f59350a5a8..36060800e9bd 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -604,7 +604,6 @@  int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
 		break;
 	}
 
-	mutex_init(&compr->lock);
 	ret = snd_compress_new(rtd->card->snd_card, num, direction,
 				new_name, compr);
 	if (ret < 0) {