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: a4bd217b4326 ("lightnvm: physical block device (pblk) target") Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Signed-off-by: Wang Hai <wanghai38@xxxxxxxxxx> --- drivers/lightnvm/pblk-sysfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/lightnvm/pblk-sysfs.c b/drivers/lightnvm/pblk-sysfs.c index 6387302..a8cb89b 100644 --- a/drivers/lightnvm/pblk-sysfs.c +++ b/drivers/lightnvm/pblk-sysfs.c @@ -710,6 +710,7 @@ int pblk_sysfs_init(struct gendisk *tdisk) kobject_get(&parent_dev->kobj), "%s", "pblk"); if (ret) { + kobject_put(&pblk->kobj); pblk_err(pblk, "could not register\n"); return ret; } -- 1.8.3.1