• Michael Ellerman's avatar
    powerpc/module: Only try to generate the ftrace_caller() stub once · 136cd345
    Michael Ellerman authored
    Currently we generate the module stub for ftrace_caller() at the bottom
    of apply_relocate_add(). However apply_relocate_add() is potentially
    called more than once per module, which means we will try to generate
    the ftrace_caller() stub multiple times.
    
    Although the current code deals with that correctly, ie. it only
    generates a stub the first time, it would be clearer to only try to
    generate the stub once.
    
    Note also on first reading it may appear that we generate a different
    stub for each section that requires relocation, but that is not the
    case. The code in stub_for_addr() that searches for an existing stub
    uses sechdrs[me->arch.stubs_section], ie. the single stub section for
    this module.
    
    A cleaner approach is to only generate the ftrace_caller() stub once,
    from module_finalize(). Although the original code didn't check to see
    if the stub was actually generated correctly, it seems prudent to add a
    check, so do that. And an additional benefit is we can clean the ifdefs
    up a little.
    
    Finally we must propagate the const'ness of some of the pointers passed
    to module_finalize(), but that is also an improvement.
    Reviewed-by: default avatarBalbir Singh <bsingharora@gmail.com>
    Reviewed-by: default avatarTorsten Duwe <duwe@suse.de>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    136cd345
module_32.c 8.8 KB