From mboxrd@z Thu Jan 1 00:00:00 1970 From: dillon.minfei at gmail.com Date: Fri, 26 Mar 2021 18:24:25 +0800 Subject: [PATCH v2 4/6] ram: stm32: fix strsep failed on read only memory In-Reply-To: <1616754267-13845-1-git-send-email-dillon.minfei@gmail.com> References: <1616754267-13845-1-git-send-email-dillon.minfei@gmail.com> Message-ID: <1616754267-13845-5-git-send-email-dillon.minfei@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: dillon min 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 Reviewed-by: Patrice Chotard --- v2: no changes 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"); -- 2.7.4