mirror of https://gitee.com/openkylin/linux.git
kernel/module.c: Update debug alignment after symtable generation
When CONFIG_DEBUG_SET_MODULE_RONX is enabled, the sizes of module sections are aligned up so appropriate permissions can be applied. Adjusting for the symbol table may cause them to become unaligned. Make sure to re-align the sizes afterward. Signed-off-by: Laura Abbott <lauraa@codeaurora.org> Acked-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
8b5f5a073f
commit
168e47f2a6
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue