diff options
| author | xiaoguang_ma <[email protected]> | 2022-11-02 15:27:41 +0900 |
|---|---|---|
| committer | xiaoguang_ma <[email protected]> | 2022-11-02 15:27:41 +0900 |
| commit | e663d2d8708cd77be1c03983c82474b0ea3a3114 (patch) | |
| tree | fe330365c8eb7293c32099f743dab3d9d80c3d97 | |
| parent | fb10694b1625654fc18b7258a752c967b3ddace5 (diff) | |
bugfix: remove sdcard block dev may cause a constant loop.
| -rw-r--r-- | components/drivers/sdio/block_dev.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/components/drivers/sdio/block_dev.c b/components/drivers/sdio/block_dev.c index c8bb2f7c68..522fa753db 100644 --- a/components/drivers/sdio/block_dev.c +++ b/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); |
