浏览代码

Merge pull request #6583 from mxgsgtc/bugfix-remove-sdcard-blockdev

[components/sdio] bugfix: remove sdcard block dev may cause a infinite loop.
Bernard Xiong 2 年之前
父节点
当前提交
20207fbcd4
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      components/drivers/sdio/block_dev.c

+ 12 - 0
components/drivers/sdio/block_dev.c

@@ -505,6 +505,18 @@ void rt_mmcsd_blk_remove(struct rt_mmcsd_card *card)
     rt_list_t *l, *n;
     struct mmcsd_blk_device *blk_dev;
 
+    if(card == RT_NULL)
+    {
+        LOG_E("card is null!");
+        return;
+    }
+
+    if(rt_list_isempty(&card->blk_devices))
+    {
+        LOG_E("card blk_devices is empty!");
+        return;
+    }
+
     for (l = (&card->blk_devices)->next, n = l->next; l != &card->blk_devices; l = n, n=n->next)
     {
         blk_dev = (struct mmcsd_blk_device *)rt_list_entry(l, struct mmcsd_blk_device, list);