diff --git a/cpu/sam0_common/sam0_sdhc/mtd_sdhc.c b/cpu/sam0_common/sam0_sdhc/mtd_sdhc.c index 591301ca85..61bace3a63 100644 --- a/cpu/sam0_common/sam0_sdhc/mtd_sdhc.c +++ b/cpu/sam0_common/sam0_sdhc/mtd_sdhc.c @@ -46,9 +46,11 @@ static int _init(mtd_dev_t *dev) #if IS_USED(MODULE_MTD_WRITE_PAGE) /* TODO: move to MTD layer */ - dev->work_area = malloc(SD_MMC_BLOCK_SIZE); - if (dev->work_area == NULL) { - return -ENOMEM; + if (!dev->work_area) { + dev->work_area = malloc(SD_MMC_BLOCK_SIZE); + if (dev->work_area == NULL) { + return -ENOMEM; + } } dev->write_size = 1; #endif