Hi Dillon On 3/11/21 7:44 AM, dillon.min...@gmail.com wrote: > From: dillon min <dillon.min...@gmail.com> > > strsep will change data from original memory address, > in case the memory is in non-sdram/sram place, will > run into a bug(hang at SDRAM: ) > > just add a temporary array to store bank_name[] to fix this > bug. > > Fixes: f303aaf ("ram: stm32: add second SDRAM bank management") > Signed-off-by: dillon min <dillon.min...@gmail.com> > --- > drivers/ram/stm32_sdram.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/ram/stm32_sdram.c b/drivers/ram/stm32_sdram.c > index 540ad85..da27677 100644 > --- a/drivers/ram/stm32_sdram.c > +++ b/drivers/ram/stm32_sdram.c > @@ -268,6 +268,7 @@ static int stm32_fmc_of_to_plat(struct udevice *dev) > u32 swp_fmc; > ofnode bank_node; > char *bank_name; > + char _bank_name[128] = {0}; > u8 bank = 0; > int ret; > > @@ -300,6 +301,8 @@ static int stm32_fmc_of_to_plat(struct udevice *dev) > dev_for_each_subnode(bank_node, dev) { > /* extract the bank index from DT */ > bank_name = (char *)ofnode_get_name(bank_node); > + strcpy(_bank_name, bank_name); > + bank_name = _bank_name; > strsep(&bank_name, "@"); > if (!bank_name) { > pr_err("missing sdram bank index"); >
Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com> Thanks Patrice