• Jan Glauber's avatar
    module: undo module RONX protection correctly. · 448694a1
    Jan Glauber authored
    While debugging I stumbled over two problems in the code that protects module
    pages.
    
    First issue is that disabling the protection before freeing init or unload of
    a module is not symmetric with the enablement. For instance, if pages are set
    to RO the page range from module_core to module_core + core_ro_size is
    protected. If a module is unloaded the page range from module_core to
    module_core + core_size is set back to RW.
    So pages that were not set to RO are also changed to RW.
    This is not critical but IMHO it should be symmetric.
    
    Second issue is that while set_memory_rw & set_memory_ro are used for
    RO/RW changes only set_memory_nx is involved for NX/X. One would await that
    the inverse function is called when the NX protection should be removed,
    which is not the case here, unless I'm missing something.
    Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    448694a1
module.c 87.7 KB