[PATCH 0/3] kallsyms: remove special handling for CONFIG_ARM
From: Ard Biesheuvel <hidden>
Date: 2016-02-03 14:17:19
On 3 February 2016 at 15:15, Chris Brandt [off-list ref] wrote:
On 2 Feb 2016, Chris Brandt wrotequoted
quoted
And when a printed out the destination, I get: Stubs at c09ff000 :00000000 BF006F20 EF9F0000 EA000064 etc... Notice the first entry is 0....that's not right...and we know it's using that first __stubs_start symbol.The first quantity after __stubs_start should be the address of vector_swi. Can you check if the second value coincides with that?Yes, it does. bf006f20 T vector_swi Which is why it booted once I modified the start address.quoted
This is caused by the fact that __stubs_start is not aligned correctly on XIP. Could you try this, please?diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 7160658fd5d4..a5b8e7b80d17 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S@@ -164,8 +164,8 @@ SECTIONS * The vectors and stubs are relocatable code, and the * only thing that matters is their relative offsets */ - __stubs_start = .; .stubs : { + __stubs_start = .; *(.stubs) } __stubs_end = .;Yup, that fixed it! bf353edc T _etext bf353ee0 t __stubs_start bf353ee0 T __stubs_start bf353ee4 t vector_rst bf353f00 t vector_irq and my new print out: Stubs at c09ff000 :BF006F20 EF9F0000 EA000064 E320F000 etc... Now that it is working on my XIP system, I will say that I'm also happy to see that extra junk in kallsyms.c and link-vmlinux.sh be removed. Those things also caused me some issues when I first started trying to get the XIP_KERNEL stuff back working.
Glad to hear that it works now. Thanks a lot for testing. -- Ard.