summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvlers <[email protected]>2024-07-05 00:09:11 +0800
committerRbb666 <[email protected]>2024-07-05 10:51:17 +0800
commit7d7993f940aa2708eb7f0074140e6e8db99be92c (patch)
treeeda1db34196135aa79c0c3a7cfcf7353d1abc296
parent95aa97714b5c26c04f51d2eb7b6c74f8b98596f6 (diff)
fix an issue where repeated remove of card resulted in assertions
-rw-r--r--components/drivers/sdio/sdio.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/components/drivers/sdio/sdio.c b/components/drivers/sdio/sdio.c
index d1705d43c3..bc1951792f 100644
--- a/components/drivers/sdio/sdio.c
+++ b/components/drivers/sdio/sdio.c
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2012-01-13 weety first version
+ * 2024-04-04 Evlers fix an issue where repeated remove of card resulted in assertions
*/
#include <drivers/mmcsd_core.h>
@@ -951,6 +952,7 @@ err1:
if (host->card)
{
rt_free(host->card);
+ host->card = RT_NULL;
}
err:
LOG_E("error %d while initialising SDIO card", err);
@@ -987,13 +989,10 @@ rt_int32_t init_sdio(struct rt_mmcsd_host *host, rt_uint32_t ocr)
err = sdio_init_card(host, current_ocr);
if (err)
- goto remove_card;
+ goto err;
return 0;
-remove_card:
- rt_free(host->card);
- host->card = RT_NULL;
err:
LOG_E("init SDIO card failed");