Commit 2c4e3154 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: compress: Initialize mutex in snd_compress_new()

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.
Reviewed-by: default avatarMark Brown <broonie@kernel.org>
Acked-by: default avatarVinod Koul <vkoul@kernel.org>
Reviewed-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20210714162424.4412-3-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent fc93c96f
...@@ -1177,6 +1177,7 @@ int snd_compress_new(struct snd_card *card, int device, ...@@ -1177,6 +1177,7 @@ int snd_compress_new(struct snd_card *card, int device,
compr->card = card; compr->card = card;
compr->device = device; compr->device = device;
compr->direction = dirn; compr->direction = dirn;
mutex_init(&compr->lock);
snd_compress_set_id(compr, id); snd_compress_set_id(compr, id);
......
...@@ -604,7 +604,6 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num) ...@@ -604,7 +604,6 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
break; break;
} }
mutex_init(&compr->lock);
ret = snd_compress_new(rtd->card->snd_card, num, direction, ret = snd_compress_new(rtd->card->snd_card, num, direction,
new_name, compr); new_name, compr);
if (ret < 0) { if (ret < 0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment