All of lore.kernel.org
 help / color / mirror / Atom feed
From: 이승빈 <seungbin.lee@samsung.com>
To: <alsa-devel@alsa-project.org>, <linux-sound@vger.kernel.org>,
	<gregkh@linuxfoundation.org>,
	<pierre-louis.bossart@linux.intel.com>, <perex@perex.cz>,
	<tiwai@suse.de>
Cc: <pilsun.jang@samsung.com>, <s47.kang@samsung.com>,
	<donghee.moon@samsung.com>
Subject: FW: [PATCH] ASoC: soc-compress: Fix race condition in soc_compr_open_fe
Date: Mon, 23 Jun 2025 10:30:55 +0900	[thread overview]
Message-ID: <000601dbe3de$76d88db0$6489a910$@samsung.com> (raw)
In-Reply-To: CGME20250623013055epcas2p15c17e1f34632e868cd504380d147490d@epcas2p1.samsung.com

Add recipient addition and modification patch to the body of the
transmission.

 

From: 이승빈 <seungbin.lee@samsung.com <mailto:seungbin.lee@samsung.com> > 
Sent: Thursday, June 19, 2025 10:25 AM
To: 'tiwai@suse.de' <tiwai@suse.de <mailto:tiwai@suse.de> >
Subject: [PATCH] ASoC: soc-compress: Fix race condition in soc_compr_open_fe

 

Hi

 

I am sending this email to report an issue found in sound/soc/soc-
compress.c.

 

Scenario: Playing a mix of MP3 and WAV files repeatedly from YouTube Music
by pressing "next".

 

Issue occurs when snd_soc_dpcm_runtime_update is called and
soc_compr_trigger_fe is invoked, causing the value of “fe-
>dpcm[stream].runtime_update” to change mid-process. This results in a
problem where, during the closing of the BE connected to the FE in
snd_soc_dpcm_runtime_update, only the entry is removed from the list
without actually being closed.

 

The attached patch resolves this issue as confirmed through testing.

 

Additionally, while performing DPCM related operations in soc-compress.c,
snd_soc_dpcm_mutex_lock is used; however, soc_compr_trigger_fe does not
have this lock. Please review the attached patch regarding this matter.

 

Thank you.

 

From 72a0340bf7dccc6f53dc2d02e04bb3f894d796e3 Mon Sep 17 00:00:00 2001

From: Seungbin Lee <seungbin.lee@samsung.com
<mailto:seungbin.lee@samsung.com> >

Date: Wed, 18 Jun 2025 13:33:02 +0900

Subject: [PATCH] ASoC: soc-compress: Fix race condition in soc_compr_open_fe

 

If the soc_compr_trigger_fe function is called during
snd_soc_dpcm_runtime_update execution,

the FE's DPCM runtime update variable may be changed.

Then the BE list connected to the FE flies away, and the BE cannot be
closed.

 

This needs to be protected by the snd_soc_dpcm_mutex_lock.

 

Change-Id: Ibfd1712e6baf41a30afa357a91ada83d205f968b

Signed-off-by: Seungbin Lee <seungbin.lee@samsung.com
<mailto:seungbin.lee@samsung.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 fc8db54352541..1a2a3fe6a2340 100644

--- a/sound/soc/soc-compress.c

+++ b/sound/soc/soc-compress.c

@@ -286,6 +286,8 @@ static int soc_compr_trigger_fe(struct snd_compr_stream
*cstream, int cmd)

 

           snd_soc_card_mutex_lock(fe->card);

 

+         snd_soc_dpcm_mutex_lock(fe);

+

          ret = snd_soc_dai_compr_trigger(cpu_dai, cstream, cmd);

          if (ret < 0)

                    goto out;

@@ -315,6 +317,8 @@ static int soc_compr_trigger_fe(struct snd_compr_stream
*cstream, int cmd)

 

 out:

          fe->dpcm[stream].runtime_update = SND_SOC_DPCM_UPDATE_NO;

+         snd_soc_dpcm_mutex_unlock(fe);

+

          snd_soc_card_mutex_unlock(fe->card);

          return ret;

}

-- 

2.34.1

 


       reply	other threads:[~2025-06-27 13:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20250623013055epcas2p15c17e1f34632e868cd504380d147490d@epcas2p1.samsung.com>
2025-06-23  1:30 ` 이승빈 [this message]
2025-06-23  5:11   ` FW: [PATCH] ASoC: soc-compress: Fix race condition in soc_compr_open_fe Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000601dbe3de$76d88db0$6489a910$@samsung.com' \
    --to=seungbin.lee@samsung.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=donghee.moon@samsung.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=pilsun.jang@samsung.com \
    --cc=s47.kang@samsung.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.