• Jessica Yu's avatar
    livepatch: reuse module loader code to write relocations · 425595a7
    Jessica Yu authored
    Reuse module loader code to write relocations, thereby eliminating the need
    for architecture specific relocation code in livepatch. Specifically, reuse
    the apply_relocate_add() function in the module loader to write relocations
    instead of duplicating functionality in livepatch's arch-dependent
    klp_write_module_reloc() function.
    
    In order to accomplish this, livepatch modules manage their own relocation
    sections (marked with the SHF_RELA_LIVEPATCH section flag) and
    livepatch-specific symbols (marked with SHN_LIVEPATCH symbol section
    index). To apply livepatch relocation sections, livepatch symbols
    referenced by relocs are resolved and then apply_relocate_add() is called
    to apply those relocations.
    
    In addition, remove x86 livepatch relocation code and the s390
    klp_write_module_reloc() function stub. They are no longer needed since
    relocation work has been offloaded to module loader.
    
    Lastly, mark the module as a livepatch module so that the module loader
    canappropriately identify and initialize it.
    Signed-off-by: default avatarJessica Yu <jeyu@redhat.com>
    Reviewed-by: default avatarMiroslav Benes <mbenes@suse.cz>
    Acked-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>   # for s390 changes
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    425595a7
livepatch.h 683 Bytes