Message ID | 20200601171343.248978-1-jagan@amarulasolutions.com |
---|---|
State | Accepted |
Commit | c8cbf1707cba99cfdf1a6a33e03956a5a788183a |
Headers | show |
Series | [v2] env: sf: Free the old env_flash | expand |
On 01/06/20 10:43PM, Jagan Teki wrote: > env_flash is a global flash pointer, and the probe would > happen only if env_flash is NULL, but there is no checking > and free the pointer if is not NULL. > > So, this patch frees the old env_flash, and get the probed > flash in to env_flash pointer and finally check if is not NULL. > > Suggested-by: Pratyush Yadav <p.yadav at ti.com> > Signed-off-by: Jagan Teki <jagan at amarulasolutions.com> Reviewed-by: Pratyush Yadav <p.yadav at ti.com>
diff --git a/env/sf.c b/env/sf.c index 23de5a3495..02ed846fc7 100644 --- a/env/sf.c +++ b/env/sf.c @@ -53,15 +53,14 @@ static int setup_flash_device(void) env_flash = dev_get_uclass_priv(new); #else + if (env_flash) + spi_flash_free(env_flash); + env_flash = spi_flash_probe(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS, + CONFIG_ENV_SPI_MAX_HZ, CONFIG_ENV_SPI_MODE); if (!env_flash) { - env_flash = spi_flash_probe(CONFIG_ENV_SPI_BUS, - CONFIG_ENV_SPI_CS, - CONFIG_ENV_SPI_MAX_HZ, CONFIG_ENV_SPI_MODE); - if (!env_flash) { - env_set_default("spi_flash_probe() failed", 0); - return -EIO; - } + env_set_default("spi_flash_probe() failed", 0); + return -EIO; } #endif return 0;
env_flash is a global flash pointer, and the probe would happen only if env_flash is NULL, but there is no checking and free the pointer if is not NULL. So, this patch frees the old env_flash, and get the probed flash in to env_flash pointer and finally check if is not NULL. Suggested-by: Pratyush Yadav <p.yadav at ti.com> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com> --- Changes for v2: - change suggested by Pratyush. env/sf.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)