kernel/drivers/base/class.c
.. .. @@ -192,6 +192,11 @@ 192 192 } 193 193 error = class_add_groups(class_get(cls), cls->class_groups); 194 194 class_put(cls); 195 + if (error) {196 + kobject_del(&cp->subsys.kobj);197 + kfree_const(cp->subsys.kobj.name);198 + kfree(cp);199 + }195 200 return error; 196 201 } 197 202 EXPORT_SYMBOL_GPL(__class_register);