drivers: mcb: fix resource leak in mcb_probe()
authorZhengchao Shao <shaozhengchao@huawei.com>
Fri, 2 Dec 2022 09:38:49 +0000 (01:38 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:14:30 +0000 (13:14 +0100)
[ Upstream commit d7237462561fcd224fa687c56ccb68629f50fc0d ]

When probe hook function failed in mcb_probe(), it doesn't put the device.
Compiled test only.

Fixes: 7bc364097a89 ("mcb: Acquire reference to device in probe")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Signed-off-by: Johannes Thumshirn <jth@kernel.org>
Link: https://lore.kernel.org/r/9f87de36bfb85158b506cb78c6fc9db3f6a3bad1.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-core.c

index cf128b3..0530db5 100644 (file)
@@ -71,8 +71,10 @@ static int mcb_probe(struct device *dev)
 
        get_device(dev);
        ret = mdrv->probe(mdev, found_id);
-       if (ret)
+       if (ret) {
                module_put(carrier_mod);
+               put_device(dev);
+       }
 
        return ret;
 }