diff --git a/drivers/soc/rockchip/sdmmc_vendor_storage.c b/drivers/soc/rockchip/sdmmc_vendor_storage.c index ea1d9410b8eb..5c14c484cd6a 100644 --- a/drivers/soc/rockchip/sdmmc_vendor_storage.c +++ b/drivers/soc/rockchip/sdmmc_vendor_storage.c @@ -85,6 +85,7 @@ static int emmc_vendor_storage_init(void) EMMC_VENDOR_PART_SIZE * max_index, EMMC_VENDOR_PART_SIZE, 0)) goto error_exit; + g_vendor->free_size = sizeof(g_vendor->data) - g_vendor->free_offset; } else { memset((void *)g_vendor, 0, sizeof(*g_vendor)); g_vendor->version = 1; @@ -160,8 +161,7 @@ static int emmc_vendor_write(u32 id, void *pbuf, u32 size) item->size = size; memcpy(&p_data[item->offset], pbuf, size); g_vendor->free_offset = offset + align_size; - g_vendor->free_size -= (align_size - - alloc_size); + g_vendor->free_size = sizeof(g_vendor->data) - g_vendor->free_offset; } else { memcpy(&p_data[item->offset], pbuf,