Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Catalin Marinas: "arm64 and generic kernel/module.c (acked by Rusty) fixes for CONFIG_DEBUG_SET_MODULE_RONX" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: kernel/module.c: Update debug alignment after symtable generation arm64: Don't use is_module_addr in setting page attributes
This commit is contained in:
@@ -51,7 +51,10 @@ static int change_memory_common(unsigned long addr, int numpages,
|
|||||||
WARN_ON_ONCE(1);
|
WARN_ON_ONCE(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_module_address(start) || !is_module_address(end - 1))
|
if (start < MODULES_VADDR || start >= MODULES_END)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (end < MODULES_VADDR || end >= MODULES_END)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
data.set_mask = set_mask;
|
data.set_mask = set_mask;
|
||||||
|
@@ -2313,11 +2313,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
|
|||||||
info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
|
info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
|
||||||
info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
|
info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
|
||||||
mod->core_size += strtab_size;
|
mod->core_size += strtab_size;
|
||||||
|
mod->core_size = debug_align(mod->core_size);
|
||||||
|
|
||||||
/* Put string table section at end of init part of module. */
|
/* Put string table section at end of init part of module. */
|
||||||
strsect->sh_flags |= SHF_ALLOC;
|
strsect->sh_flags |= SHF_ALLOC;
|
||||||
strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
|
strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
|
||||||
info->index.str) | INIT_OFFSET_MASK;
|
info->index.str) | INIT_OFFSET_MASK;
|
||||||
|
mod->init_size = debug_align(mod->init_size);
|
||||||
pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
|
pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user