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>
 
 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);