Loading drivers/base/class.c +14 −7 Original line number Diff line number Diff line Loading @@ -364,7 +364,7 @@ char *make_class_name(const char *name, struct kobject *kobj) class_name = kmalloc(size, GFP_KERNEL); if (!class_name) return ERR_PTR(-ENOMEM); return NULL; strcpy(class_name, name); strcat(class_name, ":"); Loading Loading @@ -411,8 +411,11 @@ static int make_deprecated_class_device_links(struct class_device *class_dev) return 0; class_name = make_class_name(class_dev->class->name, &class_dev->kobj); error = sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, class_name); if (class_name) error = sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, class_name); else error = -ENOMEM; kfree(class_name); return error; } Loading @@ -425,6 +428,7 @@ static void remove_deprecated_class_device_links(struct class_device *class_dev) return; class_name = make_class_name(class_dev->class->name, &class_dev->kobj); if (class_name) sysfs_remove_link(&class_dev->dev->kobj, class_name); kfree(class_name); } Loading Loading @@ -863,9 +867,12 @@ int class_device_rename(struct class_device *class_dev, char *new_name) if (class_dev->dev) { new_class_name = make_class_name(class_dev->class->name, &class_dev->kobj); sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, new_class_name); sysfs_remove_link(&class_dev->dev->kobj, old_class_name); if (new_class_name) sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, new_class_name); if (old_class_name) sysfs_remove_link(&class_dev->dev->kobj, old_class_name); } #endif class_device_put(class_dev); Loading drivers/base/core.c +11 −6 Original line number Diff line number Diff line Loading @@ -527,9 +527,13 @@ int device_add(struct device *dev) &dev->kobj, dev->bus_id); #ifdef CONFIG_SYSFS_DEPRECATED if (parent) { sysfs_create_link(&dev->kobj, &dev->parent->kobj, "device"); class_name = make_class_name(dev->class->name, &dev->kobj); sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name); sysfs_create_link(&dev->kobj, &dev->parent->kobj, "device"); class_name = make_class_name(dev->class->name, &dev->kobj); if (class_name) sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name); } #endif } Loading Loading @@ -672,7 +676,9 @@ void device_del(struct device * dev) if (parent) { char *class_name = make_class_name(dev->class->name, &dev->kobj); sysfs_remove_link(&dev->parent->kobj, class_name); if (class_name) sysfs_remove_link(&dev->parent->kobj, class_name); kfree(class_name); sysfs_remove_link(&dev->kobj, "device"); } Loading Loading @@ -975,8 +981,7 @@ static int device_move_class_links(struct device *dev, class_name = make_class_name(dev->class->name, &dev->kobj); if (!class_name) { error = PTR_ERR(class_name); class_name = NULL; error = -ENOMEM; goto out; } if (old_parent) { Loading Loading
drivers/base/class.c +14 −7 Original line number Diff line number Diff line Loading @@ -364,7 +364,7 @@ char *make_class_name(const char *name, struct kobject *kobj) class_name = kmalloc(size, GFP_KERNEL); if (!class_name) return ERR_PTR(-ENOMEM); return NULL; strcpy(class_name, name); strcat(class_name, ":"); Loading Loading @@ -411,8 +411,11 @@ static int make_deprecated_class_device_links(struct class_device *class_dev) return 0; class_name = make_class_name(class_dev->class->name, &class_dev->kobj); error = sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, class_name); if (class_name) error = sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, class_name); else error = -ENOMEM; kfree(class_name); return error; } Loading @@ -425,6 +428,7 @@ static void remove_deprecated_class_device_links(struct class_device *class_dev) return; class_name = make_class_name(class_dev->class->name, &class_dev->kobj); if (class_name) sysfs_remove_link(&class_dev->dev->kobj, class_name); kfree(class_name); } Loading Loading @@ -863,9 +867,12 @@ int class_device_rename(struct class_device *class_dev, char *new_name) if (class_dev->dev) { new_class_name = make_class_name(class_dev->class->name, &class_dev->kobj); sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, new_class_name); sysfs_remove_link(&class_dev->dev->kobj, old_class_name); if (new_class_name) sysfs_create_link(&class_dev->dev->kobj, &class_dev->kobj, new_class_name); if (old_class_name) sysfs_remove_link(&class_dev->dev->kobj, old_class_name); } #endif class_device_put(class_dev); Loading
drivers/base/core.c +11 −6 Original line number Diff line number Diff line Loading @@ -527,9 +527,13 @@ int device_add(struct device *dev) &dev->kobj, dev->bus_id); #ifdef CONFIG_SYSFS_DEPRECATED if (parent) { sysfs_create_link(&dev->kobj, &dev->parent->kobj, "device"); class_name = make_class_name(dev->class->name, &dev->kobj); sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name); sysfs_create_link(&dev->kobj, &dev->parent->kobj, "device"); class_name = make_class_name(dev->class->name, &dev->kobj); if (class_name) sysfs_create_link(&dev->parent->kobj, &dev->kobj, class_name); } #endif } Loading Loading @@ -672,7 +676,9 @@ void device_del(struct device * dev) if (parent) { char *class_name = make_class_name(dev->class->name, &dev->kobj); sysfs_remove_link(&dev->parent->kobj, class_name); if (class_name) sysfs_remove_link(&dev->parent->kobj, class_name); kfree(class_name); sysfs_remove_link(&dev->kobj, "device"); } Loading Loading @@ -975,8 +981,7 @@ static int device_move_class_links(struct device *dev, class_name = make_class_name(dev->class->name, &dev->kobj); if (!class_name) { error = PTR_ERR(class_name); class_name = NULL; error = -ENOMEM; goto out; } if (old_parent) { Loading