aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/class.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-08 04:12:42 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-09 04:41:00 -0400
commitecbaa83ee84cdf592c2891ca4c205b23d6b79a6f (patch)
tree4c55b41da162ceee9c72fdd56f660dd2835abd89 /drivers/base/class.c
parentdc307f921f5c4c0cc64675203065c9b6a94f0bcb (diff)
driver core: remove class_attrs from struct class
This field is no longer used or needed (use class_groups instead), so it can be removed along with the driver core functionality that created and removed these files. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/class.c')
-rw-r--r--drivers/base/class.c33
1 files changed, 0 insertions, 33 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c
index a2b2896693d6..52eb8e644acd 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -119,36 +119,6 @@ static void class_put(struct class *cls)
119 kset_put(&cls->p->subsys); 119 kset_put(&cls->p->subsys);
120} 120}
121 121
122static int add_class_attrs(struct class *cls)
123{
124 int i;
125 int error = 0;
126
127 if (cls->class_attrs) {
128 for (i = 0; cls->class_attrs[i].attr.name; i++) {
129 error = class_create_file(cls, &cls->class_attrs[i]);
130 if (error)
131 goto error;
132 }
133 }
134done:
135 return error;
136error:
137 while (--i >= 0)
138 class_remove_file(cls, &cls->class_attrs[i]);
139 goto done;
140}
141
142static void remove_class_attrs(struct class *cls)
143{
144 int i;
145
146 if (cls->class_attrs) {
147 for (i = 0; cls->class_attrs[i].attr.name; i++)
148 class_remove_file(cls, &cls->class_attrs[i]);
149 }
150}
151
152static void klist_class_dev_get(struct klist_node *n) 122static void klist_class_dev_get(struct klist_node *n)
153{ 123{
154 struct device *dev = container_of(n, struct device, knode_class); 124 struct device *dev = container_of(n, struct device, knode_class);
@@ -217,8 +187,6 @@ int __class_register(struct class *cls, struct lock_class_key *key)
217 } 187 }
218 error = class_add_groups(class_get(cls), cls->class_groups); 188 error = class_add_groups(class_get(cls), cls->class_groups);
219 class_put(cls); 189 class_put(cls);
220 error = add_class_attrs(class_get(cls));
221 class_put(cls);
222 return error; 190 return error;
223} 191}
224EXPORT_SYMBOL_GPL(__class_register); 192EXPORT_SYMBOL_GPL(__class_register);
@@ -226,7 +194,6 @@ EXPORT_SYMBOL_GPL(__class_register);
226void class_unregister(struct class *cls) 194void class_unregister(struct class *cls)
227{ 195{
228 pr_debug("device class '%s': unregistering\n", cls->name); 196 pr_debug("device class '%s': unregistering\n", cls->name);
229 remove_class_attrs(cls);
230 class_remove_groups(cls, cls->class_groups); 197 class_remove_groups(cls, cls->class_groups);
231 kset_unregister(&cls->p->subsys); 198 kset_unregister(&cls->p->subsys);
232} 199}