env: mtd: fix usability with NAND flashes
1. As this is for MTD-based devices, the Kconfig dependency should be MTD
instead of only spi-nor flashes
2. Initialize saved_buf to avoid crash on free()
3. Remaining size should be set correctly to write_size
Fixes: 03fb08d4ae
(env: Introduce support for MTD)
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
2
env/Kconfig
vendored
2
env/Kconfig
vendored
@@ -389,7 +389,7 @@ config ENV_IS_IN_SPI_FLASH
|
|||||||
|
|
||||||
config ENV_IS_IN_MTD
|
config ENV_IS_IN_MTD
|
||||||
bool "Environment is in MTD flash"
|
bool "Environment is in MTD flash"
|
||||||
depends on !CHAIN_OF_TRUST && (SPI_FLASH || DM_SPI_FLASH)
|
depends on !CHAIN_OF_TRUST && MTD
|
||||||
default y if ARCH_AIROHA
|
default y if ARCH_AIROHA
|
||||||
help
|
help
|
||||||
Define this if you have a MTD Flash memory device which you
|
Define this if you have a MTD Flash memory device which you
|
||||||
|
4
env/mtd.c
vendored
4
env/mtd.c
vendored
@@ -32,7 +32,7 @@ static int setup_mtd_device(struct mtd_info **mtd_env)
|
|||||||
|
|
||||||
static int env_mtd_save(void)
|
static int env_mtd_save(void)
|
||||||
{
|
{
|
||||||
char *saved_buf, *write_buf, *tmp;
|
char *saved_buf = NULL, *write_buf, *tmp;
|
||||||
struct erase_info ei = { };
|
struct erase_info ei = { };
|
||||||
struct mtd_info *mtd_env;
|
struct mtd_info *mtd_env;
|
||||||
u32 sect_size, sect_num;
|
u32 sect_size, sect_num;
|
||||||
@@ -105,7 +105,7 @@ static int env_mtd_save(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
offset = CONFIG_ENV_OFFSET;
|
offset = CONFIG_ENV_OFFSET;
|
||||||
remaining = sect_size;
|
remaining = write_size;
|
||||||
tmp = write_buf;
|
tmp = write_buf;
|
||||||
|
|
||||||
puts("Writing to MTD...");
|
puts("Writing to MTD...");
|
||||||
|
Reference in New Issue
Block a user