clear-pkgs-linux-iot-lts2018/1053-ASoC-Intel-Skl-Virt-Fi...

40 lines
1.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Furtak, Pawel" <pawel.furtak@intel.com>
Date: Mon, 11 Mar 2019 05:11:03 -0800
Subject: [PATCH] ASoC: Intel: Skl: Virt: Fix logic of vbe_skl_pcm_close_all
Traversing through streams list should be protected against
element removal which is done by vbe_skl_pcm_close.
Change-Id: I5aecaf8b0b11cabd9184f53ffa89b260a6a3fe10
Tracked-On: OAM-76903
Signed-off-by: Pawel Furtak <pawel.furtak@intel.com>
Reviewed-by: Wojciech Jablonski <wojciech.jablonski@intel.com>
Tested-by: Wojciech Jablonski <wojciech.jablonski@intel.com>
---
sound/soc/intel/skylake/virtio/skl-virtio-be.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/intel/skylake/virtio/skl-virtio-be.c b/sound/soc/intel/skylake/virtio/skl-virtio-be.c
index faee11b064d8..7709299f8078 100644
--- a/sound/soc/intel/skylake/virtio/skl-virtio-be.c
+++ b/sound/soc/intel/skylake/virtio/skl-virtio-be.c
@@ -601,12 +601,12 @@ static int vbe_skl_pcm_prepare(struct skl *sdev, int vm_id,
void vbe_skl_pcm_close_all(struct snd_skl_vbe *vbe,
struct snd_skl_vbe_client *client)
{
- struct vbe_substream_info *info;
+ struct vbe_substream_info *info, *tmp;
struct vbe_ipc_msg msg;
int ret;
msg.rx_data = NULL;
- list_for_each_entry(info, &client->substr_info_list, list) {
+ list_for_each_entry_safe(info, tmp, &client->substr_info_list, list) {
ret = vbe_skl_pcm_close(vbe->sdev, 0, info, &msg);
if (ret < 0)
dev_err(vbe->dev,
--
https://clearlinux.org