Commit 168e47f2 authored by Laura Abbott's avatar Laura Abbott Committed by Catalin Marinas
Browse files

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: default avatarLaura Abbott <lauraa@codeaurora.org>
Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 8b5f5a07
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
	mod->core_size += strtab_size;
	mod->core_size = debug_align(mod->core_size);

	/* Put string table section at end of init part of module. */
	strsect->sh_flags |= SHF_ALLOC;
	strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
					 info->index.str) | INIT_OFFSET_MASK;
	mod->init_size = debug_align(mod->init_size);
	pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
}