diff options
author | Eugene Loh <eugene.loh@oracle.com> | 2019-02-25 22:59:58 +0300 |
---|---|---|
committer | Jessica Yu <jeyu@kernel.org> | 2019-03-28 17:00:37 +0300 |
commit | 1c7651f43777cdd59c1aaa82c87324d3e7438c7b (patch) | |
tree | a58807d49e10a14e300b1ad9d538770178bec762 /include/linux/module.h | |
parent | 9672e2cb0fbdcb11d64ac43bcb4ee86a76b4221f (diff) | |
download | linux-1c7651f43777cdd59c1aaa82c87324d3e7438c7b.tar.xz |
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 'include/linux/module.h')
-rw-r--r-- | include/linux/module.h | 1 |
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 |