diff mbox

[U-Boot] altera_qspi: initialize instr.mtd in flash_erase

Message ID 1450445764-11567-1-git-send-email-thomas@wytron.com.tw
State Accepted
Delegated to: Thomas Chou
Headers show

Commit Message

Thomas Chou Dec. 18, 2015, 1:36 p.m. UTC
Initialize instr.mtd in flash_erase(). This fixes the system
hang issue when CONFIG_MTD_PARTITIONS is selected.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
---
 drivers/mtd/altera_qspi.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Marek Vasut Dec. 18, 2015, 1:50 p.m. UTC | #1
On Friday, December 18, 2015 at 02:36:04 PM, Thomas Chou wrote:
> Initialize instr.mtd in flash_erase(). This fixes the system
> hang issue when CONFIG_MTD_PARTITIONS is selected.
> 
> Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
> ---
>  drivers/mtd/altera_qspi.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c
> index 617bf5d..c7e37ad 100644
> --- a/drivers/mtd/altera_qspi.c
> +++ b/drivers/mtd/altera_qspi.c
> @@ -81,6 +81,7 @@ int flash_erase(flash_info_t *info, int s_first, int
> s_last) int ret;
> 
>  	memset(&instr, 0, sizeof(instr));
> +	instr.mtd = mtd;
>  	instr.addr = mtd->erasesize * s_first;
>  	instr.len = mtd->erasesize * (s_last + 1 - s_first);
>  	ret = mtd_erase(mtd, &instr);

Nice, took me a while to grasp where the bug triggers, but now I see it:

Acked-by: Marek Vasut <marex@denx.de>

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c
index 617bf5d..c7e37ad 100644
--- a/drivers/mtd/altera_qspi.c
+++ b/drivers/mtd/altera_qspi.c
@@ -81,6 +81,7 @@  int flash_erase(flash_info_t *info, int s_first, int s_last)
 	int ret;
 
 	memset(&instr, 0, sizeof(instr));
+	instr.mtd = mtd;
 	instr.addr = mtd->erasesize * s_first;
 	instr.len = mtd->erasesize * (s_last + 1 - s_first);
 	ret = mtd_erase(mtd, &instr);