mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
modules: fix compile error if don't have strict module rwx
commit93651f80dcupstream. If CONFIG_ARCH_HAS_STRICT_MODULE_RWX is not defined, we need stub for module_enable_nx() and module_enable_x(). If CONFIG_ARCH_HAS_STRICT_MODULE_RWX is defined, but CONFIG_STRICT_MODULE_RWX is disabled, we need stub for module_enable_nx. Move frob_text() outside of the CONFIG_STRICT_MODULE_RWX, because it is needed anyway. Fixes:2eef1399a8("modules: fix BUG when load module with rodata=n") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Signed-off-by: Jessica Yu <jeyu@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ae415d7a27
commit
52bfcc9c84
@@ -1884,7 +1884,7 @@ static void mod_sysfs_teardown(struct module *mod)
|
||||
mod_sysfs_fini(mod);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_STRICT_MODULE_RWX
|
||||
#ifdef CONFIG_ARCH_HAS_STRICT_MODULE_RWX
|
||||
/*
|
||||
* LKM RO/NX protection: protect module's text/ro-data
|
||||
* from modification and any data from execution.
|
||||
@@ -1907,6 +1907,7 @@ static void frob_text(const struct module_layout *layout,
|
||||
layout->text_size >> PAGE_SHIFT);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_STRICT_MODULE_RWX
|
||||
static void frob_rodata(const struct module_layout *layout,
|
||||
int (*set_memory)(unsigned long start, int num_pages))
|
||||
{
|
||||
@@ -2039,17 +2040,23 @@ static void disable_ro_nx(const struct module_layout *layout)
|
||||
frob_writable_data(layout, set_memory_x);
|
||||
}
|
||||
|
||||
#else
|
||||
#else /* !CONFIG_STRICT_MODULE_RWX */
|
||||
static void disable_ro_nx(const struct module_layout *layout) { }
|
||||
static void module_enable_nx(const struct module *mod) { }
|
||||
static void module_disable_nx(const struct module *mod) { }
|
||||
#endif
|
||||
#endif /* CONFIG_STRICT_MODULE_RWX */
|
||||
|
||||
static void module_enable_x(const struct module *mod)
|
||||
{
|
||||
frob_text(&mod->core_layout, set_memory_x);
|
||||
frob_text(&mod->init_layout, set_memory_x);
|
||||
}
|
||||
#else /* !CONFIG_ARCH_HAS_STRICT_MODULE_RWX */
|
||||
static void disable_ro_nx(const struct module_layout *layout) { }
|
||||
static void module_enable_nx(const struct module *mod) { }
|
||||
static void module_disable_nx(const struct module *mod) { }
|
||||
static void module_enable_x(const struct module *mod) { }
|
||||
#endif /* CONFIG_ARCH_HAS_STRICT_MODULE_RWX */
|
||||
|
||||
#ifdef CONFIG_LIVEPATCH
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user