[PPC64/Power7 - 2.6.35-rc5] Bad relocation warnings while Building a CONFIG_RELOCATABLE kernel with CONFIG_ISERIES enabled

Alexander Graf agraf at suse.de
Mon Jul 19 17:36:39 EST 2010


On 19.07.2010, at 03:11, Benjamin Herrenschmidt wrote:

> On Thu, 2010-07-15 at 17:05 +0530, Subrata Modak wrote:
>> commit e62cee42e66dcca83aae02748535f62e0f564a0c solved the problem for
>> 2.6.34-rc6. However some other bad relocation warnings generated against
>> 2.6.35-rc5 on Power7/ppc64 below:
>> 
>> MODPOST 2004 modules^M
>> WARNING: 2 bad relocations^M
>> c000000000008590 R_PPC64_ADDR32    .text+0x4000000000008460^M
>> c000000000008594 R_PPC64_ADDR32    .text+0x4000000000008598^M
> 
> I think this is KVM + CONFIG_RELOCATABLE. Caused by:
> 
> .global kvmppc_trampoline_lowmem
> kvmppc_trampoline_lowmem:
> 	.long kvmppc_handler_lowmem_trampoline - CONFIG_KERNEL_START
> 
> .global kvmppc_trampoline_enter
> kvmppc_trampoline_enter:
> 	.long kvmppc_handler_trampoline_enter - CONFIG_KERNEL_START
> 
> Alex, can you turn these into 64-bit on ppc64 so the relocator
> can grok them ?

If I turn them into 64-bit, will the values be > RMA? In that case things would break anyways. How does relocation work on PPC? Are the first few megs copied over to low memory? Would I have to mask anything in the above code to make sure I use the real values?

Alex



More information about the Linuxppc-dev mailing list