|
@@ -145,13 +145,20 @@ int sysdev_class_register(struct sysdev_class *cls)
|
|
|
if (retval)
|
|
|
return retval;
|
|
|
|
|
|
- return kset_register(&cls->kset);
|
|
|
+ retval = kset_register(&cls->kset);
|
|
|
+ if (!retval && cls->attrs)
|
|
|
+ retval = sysfs_create_files(&cls->kset.kobj,
|
|
|
+ (const struct attribute **)cls->attrs);
|
|
|
+ return retval;
|
|
|
}
|
|
|
|
|
|
void sysdev_class_unregister(struct sysdev_class *cls)
|
|
|
{
|
|
|
pr_debug("Unregistering sysdev class '%s'\n",
|
|
|
kobject_name(&cls->kset.kobj));
|
|
|
+ if (cls->attrs)
|
|
|
+ sysfs_remove_files(&cls->kset.kobj,
|
|
|
+ (const struct attribute **)cls->attrs);
|
|
|
kset_unregister(&cls->kset);
|
|
|
}
|
|
|
|