[U-Boot] [PATCH RFC 3/3] arm920t: do not relocate NULL pointer

Andreas Bießmann
2010-11-30T07:06:40Z

Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
---
arch/arm/cpu/arm920t/start.S | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/arm920t/start.S b/arch/arm/cpu/arm920t/start.S
index 629be3f..e3f9cdb 100644
--- a/arch/arm/cpu/arm920t/start.S
+++ b/arch/arm/cpu/arm920t/start.S
@@ -248,11 +248,15 @@ fixabs:
mov r1, r1, LSR #4 /* r1 <- symbol index in .dynsym */
add r1, r10, r1 /* r1 <- address of symbol in table */
ldr r1, [r1, #4] /* r1 <- symbol value */
+ cmp r1, #0 /* symbol == NULL ? */
+ beq fixnext
add r1, r9 /* r1 <- relocated sym addr */
b fixnext
fixrel:
/* relative fix: increase location by offset */
ldr r1, [r0] /* r1 <- address of symbol */
+ cmp r1, #0 /* symbol == NULL ? */
+ beq fixnext
add r1, r1, r9 /* r1 <- relocated address of symbol */
fixnext:
str r1, [r0] /* store back content of r1 */
--
1.7.3.2