• Christophe Leroy's avatar
    module: Make module_enable_x() independent of CONFIG_ARCH_HAS_STRICT_MODULE_RWX · 05975793
    Christophe Leroy authored
    module_enable_x() has nothing to do with CONFIG_ARCH_HAS_STRICT_MODULE_RWX
    allthough by coincidence architectures who need module_enable_x() are
    selection CONFIG_ARCH_HAS_STRICT_MODULE_RWX.
    
    Enable module_enable_x() for everyone everytime. If an architecture
    already has module text set executable, it's a no-op.
    
    Don't check text_size alignment. When CONFIG_STRICT_MODULE_RWX is set
    the verification is already done in frob_rodata(). When
    CONFIG_STRICT_MODULE_RWX is not set it is not a big deal to have the
    start of data as executable. Just make sure we entirely get the last
    page when the boundary is not aligned.
    
    And don't BUG on misaligned base as some architectures like nios2
    use kmalloc() for allocating modules. So just bail out in that case.
    If that's a problem, a page fault will occur later anyway.
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
    05975793
internal.h 7.93 KB