]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
authorYang Yingliang <yangyingliang@huawei.com>
Fri, 2 Dec 2022 09:38:50 +0000 (01:38 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jan 2023 10:41:25 +0000 (11:41 +0100)
[ Upstream commit 728ac3389296caf68638628c987aeae6c8851e2d ]

If mcb_device_register() returns error in chameleon_parse_gdd(), the refcount
of bus and device name are leaked. Fix this by calling put_device() to give up
the reference, so they can be released in mcb_release_dev() and kobject_cleanup().

Fixes: 60a91070ad8b ("drivers: Introduce MEN Chameleon Bus")
Reviewed-by: Johannes Thumshirn <jth@kernel.org>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Johannes Thumshirn <jth@kernel.org>
Link: https://lore.kernel.org/r/ebfb06e39b19272f0197fa9136b5e4b6f34ad732.1669624063.git.johannes.thumshirn@wdc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mcb/mcb-parse.c

index 3b69e6aa3d88ad33127a04851402656e2e425506..cfe5c95ce0cefa3211c050f0c953261ed3c01aca 100644 (file)
@@ -108,7 +108,7 @@ static int chameleon_parse_gdd(struct mcb_bus *bus,
        return 0;
 
 err:
-       mcb_free_dev(mdev);
+       put_device(&mdev->dev);
 
        return ret;
 }