[PATCH 5/7] bootwrapper: missing relocation in crt0.S

Mark A. Greer mgreer at mvista.com
Wed Mar 21 07:09:53 EST 2007


On Mon, Mar 19, 2007 at 02:58:05PM -0600, Milton Miller wrote:

> Index: kernel/arch/powerpc/boot/crt0.S
> ===================================================================
> --- kernel.orig/arch/powerpc/boot/crt0.S	2007-03-16 23:22:00.000000000 -0500
> +++ kernel/arch/powerpc/boot/crt0.S	2007-03-16 23:42:42.000000000 -0500
> @@ -63,21 +63,30 @@ _zimage_start:
>  	/* Clear the BSS */
>  	lis	r9,__bss_start at ha
>  	addi	r9,r9,__bss_start at l
> +	add	r9,r0,r9
>  	lis	r8,_end at ha
>  	addi	r8,r8,_end at l
> +	add	r8,r0,r8
>  	li	r0,0
                ^^
		Use some reg other than r0?

>  5:	stw	r0,0(r9)
>  	addi	r9,r9,4
>  	cmplw	cr0,r9,r8
>  	blt	5b
>  
> +	/* recreate relocation offset */
> +	lis	r9,_end at ha
> +	addi	r9,r9,_end at l
> +	subf	r0,r9,r8
> +

Wouldn't it make sense to just use another reg to zero out the bss so
you don't have to recreate the relocation offset?

Mark



More information about the Linuxppc-dev mailing list