[PATCH V0 0/1] ASoC: soc-compress: Fix and add missing DPCM locking
We find mising DPCM locking inside soc_compr_set_params_fe() before calling dpcm_be_dai_hw_params() and dpcm_be_dai_prepare() which cause lockdep assert for DPCM lock not held in __soc_pcm_hw_params() and __soc_pcm_prepare() in above flow when ever we play compress offload audio playback use case.
To fix this issue added DPCM lock and unlock in both places of above code flow mentioned.
Shalini Manjunatha (1): ASoC: soc-compress: Fix and add DPCM locking
sound/soc/soc-compress.c | 4 ++++ 1 file changed, 4 insertions(+)
We find mising DPCM locking inside soc_compr_set_params_fe before calling dpcm_be_dai_hw_params() and dpcm_be_dai_prepare() which cause lockdep assert for DPCM lock not held in __soc_pcm_hw_params() and __soc_pcm_prepare()
Signed-off-by: Shalini Manjunatha quic_c_shalma@quicinc.com --- sound/soc/soc-compress.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c index a38fee4..e692aa3 100644 --- a/sound/soc/soc-compress.c +++ b/sound/soc/soc-compress.c @@ -385,11 +385,15 @@ static int soc_compr_set_params_fe(struct snd_compr_stream *cstream,
fe->dpcm[stream].runtime_update = SND_SOC_DPCM_UPDATE_FE;
+ snd_soc_dpcm_mutex_lock(fe); ret = dpcm_be_dai_hw_params(fe, stream); + snd_soc_dpcm_mutex_unlock(fe); if (ret < 0) goto out;
+ snd_soc_dpcm_mutex_lock(fe); ret = dpcm_be_dai_prepare(fe, stream); + snd_soc_dpcm_mutex_unlock(fe); if (ret < 0) goto out;
On Wed, Mar 06, 2024 at 04:23:19PM +0530, Shalini Manjunatha wrote:
We find mising DPCM locking inside soc_compr_set_params_fe() before calling dpcm_be_dai_hw_params() and dpcm_be_dai_prepare() which cause lockdep assert for DPCM lock not held in __soc_pcm_hw_params() and __soc_pcm_prepare() in above flow when ever we play compress offload audio playback use case.
To fix this issue added DPCM lock and unlock in both places of above code flow mentioned.
Please don't send cover letters for single patches, if there is anything that needs saying put it in the changelog of the patch or after the --- if it's administrative stuff. This reduces mail volume and ensures that any important information is recorded in the changelog rather than being lost.
On 06-03-24, 16:23, Shalini Manjunatha wrote:
We find mising DPCM locking inside soc_compr_set_params_fe() before calling dpcm_be_dai_hw_params() and dpcm_be_dai_prepare() which cause lockdep assert for DPCM lock not held in __soc_pcm_hw_params() and __soc_pcm_prepare() in above flow when ever we play compress offload audio playback use case.
where is the patch ?
To fix this issue added DPCM lock and unlock in both places of above code flow mentioned.
Shalini Manjunatha (1): ASoC: soc-compress: Fix and add DPCM locking
sound/soc/soc-compress.c | 4 ++++ 1 file changed, 4 insertions(+)
-- 2.7.4
On Wed, Mar 06, 2024 at 07:56:36PM +0530, Vinod Koul wrote:
On 06-03-24, 16:23, Shalini Manjunatha wrote:
We find mising DPCM locking inside soc_compr_set_params_fe() before calling dpcm_be_dai_hw_params() and dpcm_be_dai_prepare() which cause lockdep assert for DPCM lock not held in __soc_pcm_hw_params() and __soc_pcm_prepare() in above flow when ever we play compress offload audio playback use case.
where is the patch ?
In reply to the cover letter:
https://lore.kernel.org/lkml/d985beeafdd32316eb45f20811eb7926da7a796e.170972...
You do seem to be on CC.
On Wed, 06 Mar 2024 16:23:19 +0530, Shalini Manjunatha wrote:
We find mising DPCM locking inside soc_compr_set_params_fe() before calling dpcm_be_dai_hw_params() and dpcm_be_dai_prepare() which cause lockdep assert for DPCM lock not held in __soc_pcm_hw_params() and __soc_pcm_prepare() in above flow when ever we play compress offload audio playback use case.
To fix this issue added DPCM lock and unlock in both places of above code flow mentioned.
[...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: soc-compress: Fix and add DPCM locking commit: 9a8b202f8cb7ebebc71f1f2a353a21c76d3063a8
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks, Mark
participants (3)
-
Mark Brown
-
Shalini Manjunatha
-
Vinod Koul