env: sf: add missing spi_flash_free
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Wed, 24 Feb 2021 10:52:35 +0000 (11:52 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 16 Apr 2021 21:33:09 +0000 (17:33 -0400)
Free the SPI resources by calling spi_flash_free() in each env sf
function to avoid issue for other SPI users.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
env/sf.c

index 1c2ab9da9b96c78c9c878ff585c3c989b733a855..ba5f7919c170ad47620df40997c57a9f5980d781 100644 (file)
--- a/env/sf.c
+++ b/env/sf.c
@@ -154,6 +154,9 @@ static int env_sf_save(void)
        printf("Valid environment: %d\n", (int)gd->env_valid);
 
 done:
+       spi_flash_free(env_flash);
+       env_flash = NULL;
+
        if (saved_buffer)
                free(saved_buffer);
 
@@ -255,6 +258,9 @@ static int env_sf_save(void)
        puts("done\n");
 
 done:
+       spi_flash_free(env_flash);
+       env_flash = NULL;
+
        if (saved_buffer)
                free(saved_buffer);
 
@@ -413,6 +419,9 @@ static int env_sf_init_early(void)
                gd->env_addr = (unsigned long)&tmp_env1->data;
        }
 
+       spi_flash_free(env_flash);
+       env_flash = NULL;
+
        return 0;
 err_read:
        spi_flash_free(env_flash);