mmc: free the available reserved memory of escd when CONFIG_ROCKCHIP_THUNDER_BOOT=y

Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Change-Id: I77c69d579c9121adde94ffc2e68514a9fd34e870
This commit is contained in:
Ziyuan Xu
2022-02-07 10:43:46 +08:00
committed by Tao Huang
parent ba941e36cc
commit e1ebd0062d

View File

@@ -699,6 +699,7 @@ static int mmc_read_ext_csd(struct mmc_card *card)
#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT
void *ecsd;
bool valid_ecsd = false;
bool valid_reserved = false;
struct device_node *mem;
struct resource reg;
struct device *dev = card->host->parent;
@@ -714,6 +715,7 @@ static int mmc_read_ext_csd(struct mmc_card *card)
dev_err(dev, "fail to get resource\n");
goto get_ecsd;
}
valid_reserved = true;
ecsd = mmc_tb_map_ecsd(reg.start, resource_size(&reg));
if (!ecsd)
@@ -765,6 +767,10 @@ decode:
kfree(ext_csd);
else
vunmap(ecsd);
if (valid_reserved)
free_reserved_area(phys_to_virt(reg.start),
phys_to_virt(reg.start) + resource_size(&reg),
-1, "memory-region-ecsd");
#else
kfree(ext_csd);
#endif