mtd: Use get_mtdids() instead of env_get("mtdids") in mtd_search_alternate_name()
PATCH 1/1 mtd: Use get_mtdids() instead of env_get("mtdids") in mtd_search_alternate_name()
The environment is not guaranteed to contain a valid mtdids variable when called from mtd_search_alternate_name(). Call get_mtdids() instead of env_get("mtdids").
--- drivers/mtd/mtd_uboot.c | 45 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 23 deletions(-)
drivers/mtd/mtd_uboot.c +22 -23
@@ -13,6 +13,27 @@#define MTD_NAME_MAX_LEN 20 +static const char *get_mtdids (void ) +{ +__maybe_unused const char *mtdparts =NULL ; +const char *mtdids =env_get ("mtdids" ); + +if (mtdids) +return mtdids; + +#if defined(CONFIG_SYS_MTDPARTS_RUNTIME ) +board_mtdparts_default (&mtdids, &mtdparts); +#elif defined(MTDIDS_DEFAULT ) + mtdids =MTDIDS_DEFAULT ; +#elif defined(CONFIG_MTDIDS_DEFAULT ) + mtdids =CONFIG_MTDIDS_DEFAULT ; +#endif + +if (mtdids) +env_set ("mtdids" , mtdids); + +return mtdids; +}/** * mtd_search_alternate_name - Search an alternate name for @mtdname thanks to
@@ -34,7 +55,7 @@ int mtd_search_alternate_name(const char *mtdname, char *altname,const char *mtdids, *equal, *comma, *dev_id, *mtd_id;int dev_id_len, mtd_id_len; - mtdids =env_get ("mtdids" ); + mtdids =get_mtdids ();if (!mtdids)return -EINVAL ;
@@ -95,28 +116,6 @@ static void mtd_probe_uclass_mtd_devs(void) { }extern void board_mtdparts_default (const char **mtdids,const char **mtdparts); -static const char *get_mtdids (void ) -{ -__maybe_unused const char *mtdparts =NULL ; -const char *mtdids =env_get ("mtdids" ); - -if (mtdids) -return mtdids; - -#if defined(CONFIG_SYS_MTDPARTS_RUNTIME ) -board_mtdparts_default (&mtdids, &mtdparts); -#elif defined(MTDIDS_DEFAULT ) - mtdids =MTDIDS_DEFAULT ; -#elif defined(CONFIG_MTDIDS_DEFAULT ) - mtdids =CONFIG_MTDIDS_DEFAULT ; -#endif - -if (mtdids) -env_set ("mtdids" , mtdids); - -return mtdids; -} -#define MTDPARTS_MAXLEN 512static const char *get_mtdparts (void )
Signature · 1 line
2.17.1
Miquel Raynal
maintainerPATCH 1/1 mtd: Use get_mtdids() instead of env_get("mtdids") in mtd_search_alternate_name()
Hi Boris,
Boris Brezillon <[email protected]> wrote on Fri, 16 Nov 2018 23:15:42 +0100:
Quoted 7 lines
The environment is not guaranteed to contain a valid mtdids variable when called from
mtd_search_alternate_name(). Callget_mtdids()instead ofenv_get("mtdids").Fixes ff4afa8a981e ("mtd: uboot: search for an equivalent MTD name with the mtdids")Signed-off-by Boris Brezillon <[email protected]>---
Thanks,
Miquèl
PATCH 1/1 mtd: Use get_mtdids() instead of env_get("mtdids") in mtd_search_alternate_name()
Quoted 8 lines · On Sat, 17 Nov 2018 11:59:52 +0100 Miquel Raynal <[email protected]>…
Hi Boris,
Boris Brezillon <[email protected]> wrote on Fri, 16 Nov 2018 23:15:42 +0100:
Quoted 3 lines
The environment is not guaranteed to contain a valid mtdids variable when called from
mtd_search_alternate_name(). Callget_mtdids()instead ofenv_get("mtdids").
Forgot to move board_mtdparts_default(). Please don't apply this patch, I'll send a v2.
Quoted 9 lines
Quoted 4 lines
Fixes ff4afa8a981e ("mtd: uboot: search for an equivalent MTD name with the mtdids")Signed-off-by Boris Brezillon <[email protected]>---
Reviewed-by Miquel Raynal <[email protected]>Thanks,
Miquèl