diff options
Diffstat (limited to 'kernel/module.c')
-rw-r--r-- | kernel/module.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/kernel/module.c b/kernel/module.c index 8d6cccc6c3cf..b0d7c2a41bd9 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -991,6 +991,20 @@ static unsigned long resolve_symbol(Elf_Shdr *sechdrs, | |||
991 | * J. Corbet <corbet@lwn.net> | 991 | * J. Corbet <corbet@lwn.net> |
992 | */ | 992 | */ |
993 | #if defined(CONFIG_KALLSYMS) && defined(CONFIG_SYSFS) | 993 | #if defined(CONFIG_KALLSYMS) && defined(CONFIG_SYSFS) |
994 | struct module_sect_attr | ||
995 | { | ||
996 | struct module_attribute mattr; | ||
997 | char *name; | ||
998 | unsigned long address; | ||
999 | }; | ||
1000 | |||
1001 | struct module_sect_attrs | ||
1002 | { | ||
1003 | struct attribute_group grp; | ||
1004 | unsigned int nsections; | ||
1005 | struct module_sect_attr attrs[0]; | ||
1006 | }; | ||
1007 | |||
994 | static ssize_t module_sect_show(struct module_attribute *mattr, | 1008 | static ssize_t module_sect_show(struct module_attribute *mattr, |
995 | struct module *mod, char *buf) | 1009 | struct module *mod, char *buf) |
996 | { | 1010 | { |
@@ -1001,7 +1015,7 @@ static ssize_t module_sect_show(struct module_attribute *mattr, | |||
1001 | 1015 | ||
1002 | static void free_sect_attrs(struct module_sect_attrs *sect_attrs) | 1016 | static void free_sect_attrs(struct module_sect_attrs *sect_attrs) |
1003 | { | 1017 | { |
1004 | int section; | 1018 | unsigned int section; |
1005 | 1019 | ||
1006 | for (section = 0; section < sect_attrs->nsections; section++) | 1020 | for (section = 0; section < sect_attrs->nsections; section++) |
1007 | kfree(sect_attrs->attrs[section].name); | 1021 | kfree(sect_attrs->attrs[section].name); |