module: move the set_fs hack for flush_icache_range to m68k
flush_icache_range generally operates on kernel addresses, but for some reason m68k needed a set_fs override. Move that into the m68k code insted of keeping it in the module loader. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Jessica Yu <jeyu@kernel.org> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Martin KaFai Lau <kafai@fb.com> Cc: Song Liu <songliubraving@fb.com> Cc: Yonghong Song <yhs@fb.com> Link: http://lkml.kernel.org/r/20200515143646.3857579-30-hch@lst.de Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a75a2df68f
commit
490741ab1b
|
@ -107,7 +107,11 @@ void flush_icache_user_range(unsigned long address, unsigned long endaddr)
|
||||||
|
|
||||||
void flush_icache_range(unsigned long address, unsigned long endaddr)
|
void flush_icache_range(unsigned long address, unsigned long endaddr)
|
||||||
{
|
{
|
||||||
|
mm_segment_t old_fs = get_fs();
|
||||||
|
|
||||||
|
set_fs(KERNEL_DS);
|
||||||
flush_icache_user_range(address, endaddr);
|
flush_icache_user_range(address, endaddr);
|
||||||
|
set_fs(old_fs);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(flush_icache_range);
|
EXPORT_SYMBOL(flush_icache_range);
|
||||||
|
|
||||||
|
|
|
@ -3344,12 +3344,6 @@ static int check_module_license_and_versions(struct module *mod)
|
||||||
|
|
||||||
static void flush_module_icache(const struct module *mod)
|
static void flush_module_icache(const struct module *mod)
|
||||||
{
|
{
|
||||||
mm_segment_t old_fs;
|
|
||||||
|
|
||||||
/* flush the icache in correct context */
|
|
||||||
old_fs = get_fs();
|
|
||||||
set_fs(KERNEL_DS);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Flush the instruction cache, since we've played with text.
|
* Flush the instruction cache, since we've played with text.
|
||||||
* Do it before processing of module parameters, so the module
|
* Do it before processing of module parameters, so the module
|
||||||
|
@ -3361,8 +3355,6 @@ static void flush_module_icache(const struct module *mod)
|
||||||
+ mod->init_layout.size);
|
+ mod->init_layout.size);
|
||||||
flush_icache_range((unsigned long)mod->core_layout.base,
|
flush_icache_range((unsigned long)mod->core_layout.base,
|
||||||
(unsigned long)mod->core_layout.base + mod->core_layout.size);
|
(unsigned long)mod->core_layout.base + mod->core_layout.size);
|
||||||
|
|
||||||
set_fs(old_fs);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int __weak module_frob_arch_sections(Elf_Ehdr *hdr,
|
int __weak module_frob_arch_sections(Elf_Ehdr *hdr,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user