[PPC64] Remove another fixed address constraint

David Gibson david at gibson.dropbear.id.au
Mon Aug 1 16:35:54 EST 2005


On Mon, Aug 01, 2005 at 08:29:29AM +0200, Olaf Hering wrote:
>  On Mon, Jul 25, David Gibson wrote:
> 
> > Presently the LparMap, one of the structures the kernel shares with
> > the legacy iSeries hypervisor has a fixed offset address in head.S.
> > This patch changes this so the LparMap is a normally initialized
> > structure, without fixed address.  This allows us to use macros to
> > compute some of the values in the structure, which wasn't previously
> > possible because the assembler always uses signed-% which gets the
> > wrong answers for the computations in question.
> > 
> > Unfortunately, a gcc bug means that doing this requires another
> > structure (hvReleaseData) to be initialized in asm instead of C, but
> > on the whole the result is cleaner than before.
> 
> I think this change caused this compile error in rc4:
> 
> {standard input}: Assembler messages:
> {standard input}:254: Error: value of 4000000000002080 too large for field of 4 bytes at 0000000000002108
> make[1]: *** [arch/ppc64/kernel/LparData.o] Error 1
> 
> binutils-2.16.91.0.2
> gcc-4.0.2_20050727

Hrm.. definitely works here.  Is this with any other patches?  Can you
send the .s file?  That might help be debug it.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/people/dgibson



More information about the Linuxppc64-dev mailing list