fix an issue where repeated remove of card resulted in assertions

This commit is contained in:
Evlers 2024-07-05 00:09:11 +08:00 committed by Rbb666
parent 95aa97714b
commit 7d7993f940
1 changed files with 3 additions and 4 deletions

View File

@ -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");