@@ -26,7 +26,6 @@ struct module_sect_attr {
26
26
27
27
struct module_sect_attrs {
28
28
struct attribute_group grp ;
29
- unsigned int nsections ;
30
29
struct module_sect_attr attrs [];
31
30
};
32
31
@@ -62,10 +61,10 @@ static ssize_t module_sect_read(struct file *file, struct kobject *kobj,
62
61
63
62
static void free_sect_attrs (struct module_sect_attrs * sect_attrs )
64
63
{
65
- unsigned int section ;
64
+ struct bin_attribute * * bin_attr ;
66
65
67
- for (section = 0 ; section < sect_attrs -> nsections ; section ++ )
68
- kfree (sect_attrs -> attrs [ section ]. battr . attr .name );
66
+ for (bin_attr = sect_attrs -> grp . bin_attrs ; * bin_attr ; bin_attr ++ )
67
+ kfree (( * bin_attr ) -> attr .name );
69
68
kfree (sect_attrs );
70
69
}
71
70
@@ -92,7 +91,6 @@ static int add_sect_attrs(struct module *mod, const struct load_info *info)
92
91
sect_attrs -> grp .name = "sections" ;
93
92
sect_attrs -> grp .bin_attrs = (void * )sect_attrs + size [0 ];
94
93
95
- sect_attrs -> nsections = 0 ;
96
94
sattr = & sect_attrs -> attrs [0 ];
97
95
gattr = & sect_attrs -> grp .bin_attrs [0 ];
98
96
for (i = 0 ; i < info -> hdr -> e_shnum ; i ++ ) {
@@ -108,7 +106,6 @@ static int add_sect_attrs(struct module *mod, const struct load_info *info)
108
106
ret = - ENOMEM ;
109
107
goto out ;
110
108
}
111
- sect_attrs -> nsections ++ ;
112
109
sattr -> battr .read = module_sect_read ;
113
110
sattr -> battr .size = MODULE_SECT_READ_SIZE ;
114
111
sattr -> battr .attr .mode = 0400 ;
0 commit comments