Commit 9de0e07d authored by Karl Beldan's avatar Karl Beldan Committed by Greg Kroah-Hartman

MIPS: head: Reorder instructions missing a delay slot

commit 25d8b92e upstream.

In this sequence the 'move' is assumed in the delay slot of the 'beq',
but head.S is in reorder mode and the former gets pushed one 'nop'
farther by the assembler.

The corrected behavior made booting with an UHI supplied dtb erratic.

Fixes: 15f37e15 ("MIPS: store the appended dtb address in a variable")
Signed-off-by: default avatarKarl Beldan <karl.beldan+oss@gmail.com>
Reviewed-by: default avatarJames Hogan <james.hogan@imgtec.com>
Cc: Jonas Gorski <jogo@openwrt.org>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/16614/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c806e018
...@@ -106,8 +106,8 @@ NESTED(kernel_entry, 16, sp) # kernel entry point ...@@ -106,8 +106,8 @@ NESTED(kernel_entry, 16, sp) # kernel entry point
beq t0, t1, dtb_found beq t0, t1, dtb_found
#endif #endif
li t1, -2 li t1, -2
beq a0, t1, dtb_found
move t2, a1 move t2, a1
beq a0, t1, dtb_found
li t2, 0 li t2, 0
dtb_found: dtb_found:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment