ASoC: sprd: Fix to use list_for_each_entry_safe() when delete items
authorWei Yongjun <weiyongjun1@huawei.com>
Mon, 29 Apr 2019 12:37:13 +0000 (12:37 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 2 May 2019 02:01:53 +0000 (11:01 +0900)
Since we will remove items off the list using list_del() we need
to use a safe version of the list_for_each_entry() macro aptly named
list_for_each_entry_safe().

Fixes: d7bff893e04f ("ASoC: sprd: Add Spreadtrum multi-channel data transfer support")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sprd/sprd-mcdt.c

index e9318d7a48108a4e6c25ddcce92d8fd753f909d1..7448015a493561a5e28e0db0bc6303ef1101e41c 100644 (file)
@@ -978,12 +978,12 @@ static int sprd_mcdt_probe(struct platform_device *pdev)
 
 static int sprd_mcdt_remove(struct platform_device *pdev)
 {
-       struct sprd_mcdt_chan *temp;
+       struct sprd_mcdt_chan *chan, *temp;
 
        mutex_lock(&sprd_mcdt_list_mutex);
 
-       list_for_each_entry(temp, &sprd_mcdt_chan_list, list)
-               list_del(&temp->list);
+       list_for_each_entry_safe(chan, temp, &sprd_mcdt_chan_list, list)
+               list_del(&chan->list);
 
        mutex_unlock(&sprd_mcdt_list_mutex);