diff options
| author | 2011-01-10 16:10:33 -0800 | |
|---|---|---|
| committer | 2011-01-10 16:10:33 -0800 | |
| commit | e54be894eae10eca9892e965cc9532f5d5a11767 (patch) | |
| tree | 27ace4446e42058ef4813a34bf63b55a870e7a12 /drivers/base/core.c | |
| parent | Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 (diff) | |
| parent | driver core: Document that device_rename() is only for networking (diff) | |
| download | linux-dev-e54be894eae10eca9892e965cc9532f5d5a11767.tar.xz linux-dev-e54be894eae10eca9892e965cc9532f5d5a11767.zip  | |
Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
  driver core: Document that device_rename() is only for networking
  sysfs: remove useless test from sysfs_merge_group
  driver-core: merge private parts of class and bus
  driver core: fix whitespace in class_attr_string
Diffstat (limited to 'drivers/base/core.c')
| -rw-r--r-- | drivers/base/core.c | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 761359261589..080e9ca11017 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -647,7 +647,7 @@ class_dir_create_and_add(struct class *class, struct kobject *parent_kobj)  	dir->class = class;  	kobject_init(&dir->kobj, &class_dir_ktype); -	dir->kobj.kset = &class->p->class_dirs; +	dir->kobj.kset = &class->p->glue_dirs;  	retval = kobject_add(&dir->kobj, parent_kobj, "%s", class->name);  	if (retval < 0) { @@ -672,7 +672,7 @@ static struct kobject *get_device_parent(struct device *dev,  		if (sysfs_deprecated && dev->class == &block_class) {  			if (parent && parent->class == &block_class)  				return &parent->kobj; -			return &block_class.p->class_subsys.kobj; +			return &block_class.p->subsys.kobj;  		}  #endif @@ -691,13 +691,13 @@ static struct kobject *get_device_parent(struct device *dev,  		mutex_lock(&gdp_mutex);  		/* find our class-directory at the parent and reference it */ -		spin_lock(&dev->class->p->class_dirs.list_lock); -		list_for_each_entry(k, &dev->class->p->class_dirs.list, entry) +		spin_lock(&dev->class->p->glue_dirs.list_lock); +		list_for_each_entry(k, &dev->class->p->glue_dirs.list, entry)  			if (k->parent == parent_kobj) {  				kobj = kobject_get(k);  				break;  			} -		spin_unlock(&dev->class->p->class_dirs.list_lock); +		spin_unlock(&dev->class->p->glue_dirs.list_lock);  		if (kobj) {  			mutex_unlock(&gdp_mutex);  			return kobj; @@ -719,7 +719,7 @@ static void cleanup_glue_dir(struct device *dev, struct kobject *glue_dir)  {  	/* see if we live in a "glue" directory */  	if (!glue_dir || !dev->class || -	    glue_dir->kset != &dev->class->p->class_dirs) +	    glue_dir->kset != &dev->class->p->glue_dirs)  		return;  	kobject_put(glue_dir); @@ -746,7 +746,7 @@ static int device_add_class_symlinks(struct device *dev)  		return 0;  	error = sysfs_create_link(&dev->kobj, -				  &dev->class->p->class_subsys.kobj, +				  &dev->class->p->subsys.kobj,  				  "subsystem");  	if (error)  		goto out; @@ -765,7 +765,7 @@ static int device_add_class_symlinks(struct device *dev)  #endif  	/* link in the class directory pointing to the device */ -	error = sysfs_create_link(&dev->class->p->class_subsys.kobj, +	error = sysfs_create_link(&dev->class->p->subsys.kobj,  				  &dev->kobj, dev_name(dev));  	if (error)  		goto out_device; @@ -793,7 +793,7 @@ static void device_remove_class_symlinks(struct device *dev)  	if (sysfs_deprecated && dev->class == &block_class)  		return;  #endif -	sysfs_delete_link(&dev->class->p->class_subsys.kobj, &dev->kobj, dev_name(dev)); +	sysfs_delete_link(&dev->class->p->subsys.kobj, &dev->kobj, dev_name(dev));  }  /** @@ -984,7 +984,7 @@ int device_add(struct device *dev)  		mutex_lock(&dev->class->p->class_mutex);  		/* tie the class to the device */  		klist_add_tail(&dev->knode_class, -			       &dev->class->p->class_devices); +			       &dev->class->p->klist_devices);  		/* notify any interfaces that the device is here */  		list_for_each_entry(class_intf, @@ -1550,6 +1550,8 @@ EXPORT_SYMBOL_GPL(device_destroy);   * exclusion between two different calls of device_rename   * on the same device to ensure that new_name is valid and   * won't conflict with other devices. + * + * "Never use this function, bad things will happen" - gregkh   */  int device_rename(struct device *dev, const char *new_name)  { @@ -1572,7 +1574,7 @@ int device_rename(struct device *dev, const char *new_name)  	}  	if (dev->class) { -		error = sysfs_rename_link(&dev->class->p->class_subsys.kobj, +		error = sysfs_rename_link(&dev->class->p->subsys.kobj,  			&dev->kobj, old_device_name, new_name);  		if (error)  			goto out;  | 
