aboutsummaryrefslogtreecommitdiff
path: root/include/linux/module.h
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2016-03-18 11:41:51 +0800
committerAlex Shi <alex.shi@linaro.org>2016-03-18 16:01:49 +0800
commit70e00db9eb8ffc4dcaf5f035ec6a4440ba428794 (patch)
treeea67e279adedc950c3d4d8e98546b3823a2b3e93 /include/linux/module.h
parent34e0913e457f8469667faf5fa600447aa93371cf (diff)
parentdfbed80c63bb8d965067da3a6dbcc4682edcce0c (diff)
Merge remote-tracking branch 'lts/linux-3.14.y' into linux-linaro-lsk-v3.14lsk-v3.14-16.03linux-linaro-lsk-v3.14
Conflicts: Most of conflicts are due to efivar_validate() change which introduced a new parameter to check efi guid. I added efi guid for this change in sanity_check()/efivar_create() in drivers/firmware/efi/efivars.c and keep new efivar_validate() in drivers/firmware/efi/vars.c, since it's newer than LSK version. nothing need mentioned in include/linux/efi.h
Diffstat (limited to 'include/linux/module.h')
-rw-r--r--include/linux/module.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/include/linux/module.h b/include/linux/module.h
index eaf60ff9ba94..adea1d663a06 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -227,6 +227,12 @@ struct module_ref {
unsigned long decs;
} __attribute((aligned(2 * sizeof(unsigned long))));
+struct mod_kallsyms {
+ Elf_Sym *symtab;
+ unsigned int num_symtab;
+ char *strtab;
+};
+
struct module {
enum module_state state;
@@ -314,14 +320,9 @@ struct module {
#endif
#ifdef CONFIG_KALLSYMS
- /*
- * We keep the symbol and string tables for kallsyms.
- * The core_* fields below are temporary, loader-only (they
- * could really be discarded after module init).
- */
- Elf_Sym *symtab, *core_symtab;
- unsigned int num_symtab, core_num_syms;
- char *strtab, *core_strtab;
+ /* Protected by RCU and/or module_mutex: use rcu_dereference() */
+ struct mod_kallsyms *kallsyms;
+ struct mod_kallsyms core_kallsyms;
/* Section attributes */
struct module_sect_attrs *sect_attrs;