summaryrefslogtreecommitdiff
path: root/arch/mips
diff options
context:
space:
mode:
authorJinyang He <hejinyang@loongson.cn>2021-01-06 08:47:39 +0800
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>2021-01-07 17:12:14 +0100
commitfdd85e04df3fdd55bb7f32786890fdfb200c40f0 (patch)
tree1885f0dfc2fe3cf011eceac1e68bb5d353f86a22 /arch/mips
parenta6e83acee2dd377959ec4bdeaa463da45ba0f811 (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')
-rw-r--r--arch/mips/boot/compressed/head.S2
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 */