summaryrefslogtreecommitdiff
path: root/components/drivers/sdio
diff options
context:
space:
mode:
authorWayne Lin <[email protected]>2021-11-29 14:18:00 +0800
committerBernard Xiong <[email protected]>2021-12-24 05:36:12 +0800
commitc84952d9cdaf15606f85a73c585d5c10345f8378 (patch)
treeede725b0bbd4f1399eafa740023c3fd5636a3732 /components/drivers/sdio
parent669eacc443ef8e40b5dbde06ffa1a06383d564f0 (diff)
Fix infinite-loop in rt_mmcsd_blk_remove.
1. Issue on traveling latest node in list if multi-partitions on card.
Diffstat (limited to 'components/drivers/sdio')
-rw-r--r--components/drivers/sdio/block_dev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/components/drivers/sdio/block_dev.c b/components/drivers/sdio/block_dev.c
index 2acbc44fa3..73e0c885ec 100644
--- a/components/drivers/sdio/block_dev.c
+++ b/components/drivers/sdio/block_dev.c
@@ -496,7 +496,7 @@ void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card)
rt_list_t *l, *n;
struct mmcsd_blk_device *blk_dev;
- for (l = (&blk_devices)->next, n = l->next; l != &blk_devices; l = n)
+ for (l = (&blk_devices)->next, n = l->next; l != &blk_devices; l = n, n = n->next)
{
blk_dev = (struct mmcsd_blk_device *)rt_list_entry(l, struct mmcsd_blk_device, list);
if (blk_dev->card == card)