瀏覽代碼

MIPS: start.S: fix boundary check in relocate_code

The loop code copies more data with one than
necessary due to the 'ble' instuction. Use the
'blt' instruction instead to fix that.

Due to the lack of suitable hardware the Xburst
specific code is compile tested only. However the
change is quite obvious.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Cc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
Gabor Juhos 12 年之前
父節點
當前提交
5b7dd8163d
共有 3 個文件被更改,包括 3 次插入3 次删除
  1. 1 1
      arch/mips/cpu/mips32/start.S
  2. 1 1
      arch/mips/cpu/mips64/start.S
  3. 1 1
      arch/mips/cpu/xburst/start.S

+ 1 - 1
arch/mips/cpu/mips32/start.S

@@ -313,7 +313,7 @@ relocate_code:
 	lw	t3, 0(t0)
 	sw	t3, 0(t1)
 	addu	t0, 4
-	ble	t0, t2, 1b
+	blt	t0, t2, 1b
 	 addu	t1, 4
 
 	/* If caches were enabled, we would have to flush them here. */

+ 1 - 1
arch/mips/cpu/mips64/start.S

@@ -192,7 +192,7 @@ relocate_code:
 	lw	t3, 0(t0)
 	sw	t3, 0(t1)
 	daddu	t0, 4
-	ble	t0, t2, 1b
+	blt	t0, t2, 1b
 	 daddu	t1, 4
 
 	/* If caches were enabled, we would have to flush them here. */

+ 1 - 1
arch/mips/cpu/xburst/start.S

@@ -87,7 +87,7 @@ relocate_code:
 	lw	t3, 0(t0)
 	sw	t3, 0(t1)
 	addu	t0, 4
-	ble	t0, t2, 1b
+	blt	t0, t2, 1b
 	 addu	t1, 4
 
 	/* If caches were enabled, we would have to flush them here. */