• Rusty Russell's avatar
    module: clean up RO/NX handling. · 85c898db
    Rusty Russell authored
    Modules have three sections: text, rodata and writable data.  The code
    handled the case where these overlapped, however they never can:
    debug_align() ensures they are always page-aligned.
    
    This is why we got away with manually traversing the pages in
    set_all_modules_text_rw() without rounding.
    
    We create three helper functions: frob_text(), frob_rodata() and
    frob_writable_data().  We then call these explicitly at every point,
    so it's clear what we're doing.
    
    We also expose module_enable_ro() and module_disable_ro() for
    livepatch to use.
    Reviewed-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    85c898db
module.c 102 KB