Browse Source

fix an issue where repeated remove of card resulted in assertions

Evlers 10 months ago
parent
commit
7d7993f940
1 changed files with 3 additions and 4 deletions
  1. 3 4
      components/drivers/sdio/sdio.c

+ 3 - 4
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");