kobject: remove struct kobj_type from struct kset
We don't need a "default" ktype for a kset. We should set this explicitly every time for each kset. This change is needed so that we can make ksets dynamic, and cleans up one of the odd, undocumented assumption that the kset/kobject/ktype model has. This patch is based on a lot of help from Kay Sievers. Nasty bug in the block code was found by Dave Young <hidave.darkstar@gmail.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
@@ -131,7 +131,7 @@ EXPORT_SYMBOL_GPL(sysdev_class_remove_file);
|
||||
/*
|
||||
* declare system_subsys
|
||||
*/
|
||||
static decl_subsys(system, &ktype_sysdev_class, NULL);
|
||||
static decl_subsys(system, NULL);
|
||||
|
||||
int sysdev_class_register(struct sysdev_class * cls)
|
||||
{
|
||||
@@ -139,6 +139,7 @@ int sysdev_class_register(struct sysdev_class * cls)
|
||||
kobject_name(&cls->kset.kobj));
|
||||
INIT_LIST_HEAD(&cls->drivers);
|
||||
cls->kset.kobj.parent = &system_subsys.kobj;
|
||||
cls->kset.kobj.ktype = &ktype_sysdev_class;
|
||||
cls->kset.kobj.kset = &system_subsys;
|
||||
return kset_register(&cls->kset);
|
||||
}
|
||||
|
Reference in New Issue
Block a user