diff options
| author | Joakim Tjernlund <Joakim.Tjernlund@transmode.se> | 2010-10-14 11:51:44 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2010-10-18 22:39:37 +0200 | 
| commit | d1e0b10accdbac2e0a8b2cbf7c589645442f87c5 (patch) | |
| tree | b818dd380265c89f435900b03c49a1cbf07534d4 /arch/powerpc/cpu/mpc8xx/start.S | |
| parent | d98b0523cfaaedeecb263b15c121c0727b0d80b9 (diff) | |
| download | olio-uboot-2014.01-d1e0b10accdbac2e0a8b2cbf7c589645442f87c5.tar.xz olio-uboot-2014.01-d1e0b10accdbac2e0a8b2cbf7c589645442f87c5.zip | |
powerpc: do not fixup NULL ptrs
The fixup routine must not fixup NULL pointers.
Problem can be seen by
 char *testfun(void) __attribute__((weak));
 char *(*myfun)(void) = testfun;
Then add
  printf("myfun:%p, &myfun:%p\n", myfun, &myfun);
before relocation and after relocation.
myfun should be NULL in both cases but it is not.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Diffstat (limited to 'arch/powerpc/cpu/mpc8xx/start.S')
| -rw-r--r-- | arch/powerpc/cpu/mpc8xx/start.S | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/arch/powerpc/cpu/mpc8xx/start.S b/arch/powerpc/cpu/mpc8xx/start.S index 6073dabea..4a8c5d9e4 100644 --- a/arch/powerpc/cpu/mpc8xx/start.S +++ b/arch/powerpc/cpu/mpc8xx/start.S @@ -584,10 +584,12 @@ in_ram:  	beq	4f  3:	lwzu	r4,4(r3)  	lwzux	r0,r4,r11 +	cmpwi	r0,0  	add	r0,r0,r11  	stw	r10,0(r3) +	beq-	5f  	stw	r0,0(r4) -	bdnz	3b +5:	bdnz	3b  4:  clear_bss:  	/* |