• Mark Rutland's avatar
    module/ftrace: handle patchable-function-entry · a1326b17
    Mark Rutland authored
    When using patchable-function-entry, the compiler will record the
    callsites into a section named "__patchable_function_entries" rather
    than "__mcount_loc". Let's abstract this difference behind a new
    FTRACE_CALLSITE_SECTION, so that architectures don't have to handle this
    explicitly (e.g. with custom module linker scripts).
    
    As parisc currently handles this explicitly, it is fixed up accordingly,
    with its custom linker script removed. Since FTRACE_CALLSITE_SECTION is
    only defined when DYNAMIC_FTRACE is selected, the parisc module loading
    code is updated to only use the definition in that case. When
    DYNAMIC_FTRACE is not selected, modules shouldn't have this section, so
    this removes some redundant work in that case.
    
    To make sure that this is keep up-to-date for modules and the main
    kernel, a comment is added to vmlinux.lds.h, with the existing ifdeffery
    simplified for legibility.
    
    I built parisc generic-{32,64}bit_defconfig with DYNAMIC_FTRACE enabled,
    and verified that the section made it into the .ko files for modules.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarHelge Deller <deller@gmx.de>
    Acked-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Reviewed-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Reviewed-by: default avatarTorsten Duwe <duwe@suse.de>
    Tested-by: default avatarAmit Daniel Kachhap <amit.kachhap@arm.com>
    Tested-by: default avatarSven Schnelle <svens@stackframe.org>
    Tested-by: default avatarTorsten Duwe <duwe@suse.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: linux-parisc@vger.kernel.org
    a1326b17
module.c 116 KB