drivers: code cleanups
PATCH 1/1 drivers: code cleanups
drivers: code cleanups
the first three goto clauses caused kfree(NULL), and the error code returned by kset->uevent_ops->uevent() wasn't passed to the caller of show_uevent(). This patch also eliminates the unnecessary initializations of env and count.
Signed-off-by Changli Gao <[email protected]>
----
drivers/base/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
drivers/base/core.c +7 -7
@@ -274,9 +274,8 @@ static ssize_t show_uevent(struct device *dev, struct device_attribute *attr, {struct kobject *top_kobj;struct kset *kset; -struct kobj_uevent_env *env =NULL ; +struct kobj_uevent_env *env;int i; -size_t count =0 ;int retval;/* search the kset, the device belongs to */
@@ -284,16 +283,16 @@ static ssize_t show_uevent(struct device *dev, struct device_attribute *attr,while (!top_kobj->kset && top_kobj->parent) top_kobj = top_kobj->parent;if (!top_kobj->kset) - goto out; +return 0 ; kset = top_kobj->kset;if (!kset->uevent_ops || !kset->uevent_ops->uevent) - goto out; +return 0 ;/* respect filter */ if (kset->uevent_ops && kset->uevent_ops->filter)if (!kset->uevent_ops->filter (kset, &dev->kobj)) - goto out; +return 0 ; env =kzalloc (sizeof (struct kobj_uevent_env ),GFP_KERNEL );if (!env)
@@ -305,11 +304,12 @@ static ssize_t show_uevent(struct device *dev, struct device_attribute *attr, goto out;/* copy keys to file */ + retval =0 ;for (i =0 ; i < env->envp_idx; i++) - count +=sprintf (&buf[count],"%s\n" , env->envp[i]); + retval +=sprintf (&buf[retval],"%s\n" , env->envp[i]); out:kfree (env); -return count; +return retval; } static ssize_t store_uevent(struct device *dev, struct device_attribute *attr,