diff options
author | Jinyang He <hejinyang@loongson.cn> | 2021-01-06 08:47:39 +0800 |
---|---|---|
committer | Thomas Bogendoerfer <tsbogend@alpha.franken.de> | 2021-01-07 17:12:14 +0100 |
commit | fdd85e04df3fdd55bb7f32786890fdfb200c40f0 (patch) | |
tree | 1885f0dfc2fe3cf011eceac1e68bb5d353f86a22 /arch/mips/boot | |
parent | a6e83acee2dd377959ec4bdeaa463da45ba0f811 (diff) |
MIPS: zboot: Avoid endless loop in clear BSS.
Commit 2ee1503e546f ("MIPS: zboot: head.S clean up").
After .noreorder removed, clear BSS fall into endless loop. The bne
instruction will add nop to the delay slot at compile time. So a0
register will not increment by 4. Fix it and clear BSS from _edata
to (_end - 1).
Signed-off-by: Jinyang He <hejinyang@loongson.cn>
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Diffstat (limited to 'arch/mips/boot')
-rw-r--r-- | arch/mips/boot/compressed/head.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S index 070b2fbabae4..5795d0af1e1b 100644 --- a/arch/mips/boot/compressed/head.S +++ b/arch/mips/boot/compressed/head.S @@ -26,8 +26,8 @@ PTR_LA a0, _edata PTR_LA a2, _end 1: sw zero, 0(a0) + addiu a0, a0, 4 bne a2, a0, 1b - addiu a0, a0, 4 PTR_LA a0, (.heap) /* heap address */ PTR_LA sp, (.stack + 8192) /* stack address */ |