aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2007-12-19 20:09:39 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-01-24 23:40:40 -0500
commitaf5ca3f4ec5cc4432a42a73b050dd8898ce8fd00 (patch)
tree3e5a3081b2802547f10da72c0026b4929d0e287b /include/linux
parent528a4bf1d5ffed310d26fc1d82d45c02949f71cf (diff)
Driver core: change sysdev classes to use dynamic kobject names
All kobjects require a dynamically allocated name now. We no longer need to keep track if the name is statically assigned, we can just unconditionally free() all kobject names on cleanup. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/kobject.h13
-rw-r--r--include/linux/sysdev.h1
2 files changed, 3 insertions, 11 deletions
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index 504ac0eb4412..4adbe1d83081 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -61,7 +61,7 @@ enum kobject_action {
61}; 61};
62 62
63struct kobject { 63struct kobject {
64 const char * k_name; 64 const char *name;
65 struct kref kref; 65 struct kref kref;
66 struct list_head entry; 66 struct list_head entry;
67 struct kobject * parent; 67 struct kobject * parent;
@@ -69,7 +69,6 @@ struct kobject {
69 struct kobj_type * ktype; 69 struct kobj_type * ktype;
70 struct sysfs_dirent * sd; 70 struct sysfs_dirent * sd;
71 unsigned int state_initialized:1; 71 unsigned int state_initialized:1;
72 unsigned int state_name_set:1;
73 unsigned int state_in_sysfs:1; 72 unsigned int state_in_sysfs:1;
74 unsigned int state_add_uevent_sent:1; 73 unsigned int state_add_uevent_sent:1;
75 unsigned int state_remove_uevent_sent:1; 74 unsigned int state_remove_uevent_sent:1;
@@ -80,7 +79,7 @@ extern int kobject_set_name(struct kobject *, const char *, ...)
80 79
81static inline const char * kobject_name(const struct kobject * kobj) 80static inline const char * kobject_name(const struct kobject * kobj)
82{ 81{
83 return kobj->k_name; 82 return kobj->name;
84} 83}
85 84
86extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype); 85extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype);
@@ -189,14 +188,6 @@ static inline struct kobj_type *get_ktype(struct kobject *kobj)
189 188
190extern struct kobject * kset_find_obj(struct kset *, const char *); 189extern struct kobject * kset_find_obj(struct kset *, const char *);
191 190
192
193/*
194 * Use this when initializing an embedded kset with no other
195 * fields to initialize.
196 */
197#define set_kset_name(str) .kset = { .kobj = { .k_name = str } }
198
199
200/* The global /sys/kernel/ kobject for people to chain off of */ 191/* The global /sys/kernel/ kobject for people to chain off of */
201extern struct kobject *kernel_kobj; 192extern struct kobject *kernel_kobj;
202/* The global /sys/hypervisor/ kobject for people to chain off of */ 193/* The global /sys/hypervisor/ kobject for people to chain off of */
diff --git a/include/linux/sysdev.h b/include/linux/sysdev.h
index e285746588d6..f752e73bf977 100644
--- a/include/linux/sysdev.h
+++ b/include/linux/sysdev.h
@@ -29,6 +29,7 @@
29struct sys_device; 29struct sys_device;
30 30
31struct sysdev_class { 31struct sysdev_class {
32 const char *name;
32 struct list_head drivers; 33 struct list_head drivers;
33 34
34 /* Default operations for these types of devices */ 35 /* Default operations for these types of devices */