Skip to content
  • Rabin Vincent's avatar
    ARM: 6316/1: ftrace: add Thumb-2 support · a3ba87a6
    Rabin Vincent authored
    
    
    Fix the mcount routines to build and run on a kernel built with the
    Thumb-2 instruction set by correcting the following errors using the
    fixes suggested by Catalin Marinas:
    
     - Problem: The following assembler errors appear at the "adr r0,
       ftrace_stub" instruction:
    
       entry-common.S: Assembler messages:
       entry-common.S:179: Error: invalid immediate for address calculation (value = 0x00000004)
    
       Fix: The errors don't occur with a non-global symbol, so use one.
    
     - Problem: The "mov lr, pc" does not set the lsb when storing the pc in
       lr.  The called function returns with "bx lr", and the mode changes
       to ARM.
    
       Fix: Add a label on the return address and use "adr lr, BSYM(label)".
    
    We don't modify the old mcount because it won't be built when using
    Thumb-2.
    
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarRabin Vincent <rabin@rab.in>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    a3ba87a6