• Nicholas Piggin's avatar
    powerpc: remove interrupt handler functions from the noinstr section · e4bb64c7
    Nicholas Piggin authored
    The allyesconfig ppc64 kernel fails to link with relocations unable to
    fit after commit 3a96570f ("powerpc: convert interrupt handlers to
    use wrappers"), which is due to the interrupt handler functions being
    put into the .noinstr.text section, which the linker script places on
    the opposite side of the main .text section from the interrupt entry
    asm code which calls the handlers.
    
    This results in a lot of linker stubs that overwhelm the 252-byte sized
    space we allow for them, or in the case of BE a .opd relocation link
    error for some reason.
    
    It's not required to put interrupt handlers in the .noinstr section,
    previously they used NOKPROBE_SYMBOL, so take them out and replace
    with a NOKPROBE_SYMBOL in the wrapper macro. Remove the explicit
    NOKPROBE_SYMBOL macros in the interrupt handler functions. This makes
    a number of interrupt handlers nokprobe that were not prior to the
    interrupt wrappers commit, but since that commit they were made
    nokprobe due to being in .noinstr.text, so this fix does not change
    that.
    
    The fixes tag is different to the commit that first exposes the problem
    because it is where the wrapper macros were introduced.
    
    Fixes: 8d41fc61 ("powerpc: interrupt handler wrapper functions")
    Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    [mpe: Slightly fix up comment wording]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210211063636.236420-1-npiggin@gmail.com
    e4bb64c7
interrupt.h 13.5 KB