kernel/module.c: Update debug alignment after symtable generation
authorLaura Abbott <lauraa@codeaurora.org>
Wed, 25 Feb 2015 22:14:57 +0000 (14:14 -0800)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 6 Mar 2015 12:04:22 +0000 (12:04 +0000)
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>
kernel/module.c

index b34813f725e970fa79b97e625fab6c568543aaf8..cc93cf68653c15f4067d683cf0cb4584530ede93 100644 (file)
@@ -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);
 }