summaryrefslogtreecommitdiff
path: root/drivers/misc/cxl
diff options
context:
space:
mode:
authorWang Hai <wanghai38@huawei.com>2020-06-02 20:07:33 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-08-21 10:53:00 +0200
commit48da5e63f53f781876454e90368d661af4b84bbf (patch)
tree7ff0cc9f2f5373295c1949ab5ced91cc7b40e32d /drivers/misc/cxl
parent2ef169a7e42f18413ba5e7480ec4a4d9ac246f8f (diff)
cxl: Fix kobject memleak
[ Upstream commit 85c5cbeba8f4fb28e6b9bfb3e467718385f78f76 ] Currently the error return path from kobject_init_and_add() is not followed by a call to kobject_put() - which means we are leaking the kobject. Fix it by adding a call to kobject_put() in the error path of kobject_init_and_add(). Fixes: b087e6190ddc ("cxl: Export optional AFU configuration record in sysfs") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Wang Hai <wanghai38@huawei.com> Acked-by: Andrew Donnellan <ajd@linux.ibm.com> Acked-by: Frederic Barrat <fbarrat@linux.ibm.com> Link: https://lore.kernel.org/r/20200602120733.5943-1-wanghai38@huawei.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/misc/cxl')
-rw-r--r--drivers/misc/cxl/sysfs.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/misc/cxl/sysfs.c b/drivers/misc/cxl/sysfs.c
index 02006f7109a8..ce292d7766db 100644
--- a/drivers/misc/cxl/sysfs.c
+++ b/drivers/misc/cxl/sysfs.c
@@ -539,7 +539,7 @@ static struct afu_config_record *cxl_sysfs_afu_new_cr(struct cxl_afu *afu, int c
rc = kobject_init_and_add(&cr->kobj, &afu_config_record_type,
&afu->dev.kobj, "cr%i", cr->cr);
if (rc)
- goto err;
+ goto err1;
rc = sysfs_create_bin_file(&cr->kobj, &cr->config_attr);
if (rc)
@@ -555,9 +555,6 @@ err2:
err1:
kobject_put(&cr->kobj);
return ERR_PTR(rc);
-err:
- kfree(cr);
- return ERR_PTR(rc);
}
void cxl_sysfs_afu_remove(struct cxl_afu *afu)