aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/module.h
diff options
context:
space:
mode:
authorEugene Loh <eugene.loh@oracle.com>2019-02-25 11:59:58 -0800
committerJessica Yu <jeyu@kernel.org>2019-03-28 15:00:37 +0100
commit1c7651f43777cdd59c1aaa82c87324d3e7438c7b (patch)
treea58807d49e10a14e300b1ad9d538770178bec762 /include/linux/module.h
parentvmlinux.lds.h: drop unused __vermagic (diff)
downloadlinux-dev-1c7651f43777cdd59c1aaa82c87324d3e7438c7b.tar.xz
linux-dev-1c7651f43777cdd59c1aaa82c87324d3e7438c7b.zip
kallsyms: store type information in its own array
When a module is loaded, its symbols' Elf_Sym information is stored in a symtab. Further, type information is also captured. Since Elf_Sym has no type field, historically the st_info field has been hijacked for storing type: st_info was overwritten. commit 5439c985c5a83a8419f762115afdf560ab72a452 ("module: Overwrite st_size instead of st_info") changes that practice, as its one-liner indicates. Unfortunately, this change overwrites symbol size, information that a tool like DTrace expects to find. Allocate a typetab array to store type information so that no Elf_Sym field needs to be overwritten. Fixes: 5439c985c5a8 ("module: Overwrite st_size instead of st_info") Signed-off-by: Eugene Loh <eugene.loh@oracle.com> Reviewed-by: Nick Alcock <nick.alcock@oracle.com> [jeyu: renamed typeoff -> typeoffs ] Signed-off-by: Jessica Yu <jeyu@kernel.org>
Diffstat (limited to '')
-rw-r--r--include/linux/module.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/module.h b/include/linux/module.h
index 5bf5dcd91009..3abe8176df98 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -331,6 +331,7 @@ struct mod_kallsyms {
Elf_Sym *symtab;
unsigned int num_symtab;
char *strtab;
+ char *typetab;
};
#ifdef CONFIG_LIVEPATCH