From: Julia Lawall Date: Fri, 1 May 2015 19:37:53 +0000 (+0200) Subject: staging: lustre: obdclass: obd_config: remove unneeded null test before free X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=32a3fab2ed1ed7240514eb50506031e68dcd4a38;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git staging: lustre: obdclass: obd_config: remove unneeded null test before free Kfree can cope with a null argument, so drop null tests. The semantic patch that identifies this issue is as follows: (http://coccinelle.lip6.fr/) // @@ expression ptr; @@ - if (ptr != NULL) kfree(ptr); // The first part of the patch introduces new labels to avoid unnecessary calls to kfree. In addition, lprof->lp_md is always null in the cleanup code at the end of the function, so that kfree is just dropped. Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lustre/lustre/obdclass/obd_config.c b/drivers/staging/lustre/lustre/obdclass/obd_config.c index 687fbbd1eb3f..0bda9c56f148 100644 --- a/drivers/staging/lustre/lustre/obdclass/obd_config.c +++ b/drivers/staging/lustre/lustre/obdclass/obd_config.c @@ -869,7 +869,7 @@ int class_add_profile(int proflen, char *prof, int osclen, char *osc, lprof->lp_profile = kzalloc(proflen, GFP_NOFS); if (lprof->lp_profile == NULL) { err = -ENOMEM; - goto out; + goto free_lprof; } memcpy(lprof->lp_profile, prof, proflen); @@ -877,7 +877,7 @@ int class_add_profile(int proflen, char *prof, int osclen, char *osc, lprof->lp_dt = kzalloc(osclen, GFP_NOFS); if (lprof->lp_dt == NULL) { err = -ENOMEM; - goto out; + goto free_lp_profile; } memcpy(lprof->lp_dt, osc, osclen); @@ -886,7 +886,7 @@ int class_add_profile(int proflen, char *prof, int osclen, char *osc, lprof->lp_md = kzalloc(mdclen, GFP_NOFS); if (lprof->lp_md == NULL) { err = -ENOMEM; - goto out; + goto free_lp_dt; } memcpy(lprof->lp_md, mdc, mdclen); } @@ -894,13 +894,11 @@ int class_add_profile(int proflen, char *prof, int osclen, char *osc, list_add(&lprof->lp_list, &lustre_profile_list); return err; -out: - if (lprof->lp_md) - kfree(lprof->lp_md); - if (lprof->lp_dt) - kfree(lprof->lp_dt); - if (lprof->lp_profile) - kfree(lprof->lp_profile); +free_lp_dt: + kfree(lprof->lp_dt); +free_lp_profile: + kfree(lprof->lp_profile); +free_lprof: kfree(lprof); return err; } @@ -916,8 +914,7 @@ void class_del_profile(const char *prof) list_del(&lprof->lp_list); kfree(lprof->lp_profile); kfree(lprof->lp_dt); - if (lprof->lp_md) - kfree(lprof->lp_md); + kfree(lprof->lp_md); kfree(lprof); } } @@ -932,8 +929,7 @@ void class_del_profiles(void) list_del(&lprof->lp_list); kfree(lprof->lp_profile); kfree(lprof->lp_dt); - if (lprof->lp_md) - kfree(lprof->lp_md); + kfree(lprof->lp_md); kfree(lprof); } }