[PATCH] [POWERPC] iSeries: fix section mismatch warnings

Stephen Rothwell sfr at canb.auug.org.au
Thu Jul 26 11:56:01 EST 2007


Hi Will,

On Wed, 25 Jul 2007 11:55:31 -0500 Will Schmidt <will_schmidt at vnet.ibm.com> wrote:
>
> >  	cmpwi	0,r24,0			/* Are we processor 0? */
> > -	beq	.__start_initialization_iSeries	/* Start up the first processor */
> > -	mfspr	r4,SPRN_CTRLF
> > +	bne	1f
> > +	b	.__start_initialization_iSeries	/* Start up the first processor */
> > +1:	mfspr	r4,SPRN_CTRLF
> >  	li	r5,CTRL_RUNLATCH	/* Turn off the run light */
> 
> This part isnt clicking for me.. 
> How does changing a "beq" to a "bne" over a "b" fit into changing
> __start_initialization_iSeries static?  

Because I moved __start_initialization_iSeries into another section, it
ends up too far away for a conditional branch so something adds a jump
table to the .text section and changes this branch to be via that table.
Unfortunately, the jump table ends up at the start of the .text and ruins
our carefully laid out kernel image.  By inverting the test I can turn
the branch into an unconditional one which has a larger possible offse
(effectively building the jump table manually).

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20070726/55dc7278/attachment.pgp>


More information about the Linuxppc-dev mailing list