summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Yingliang <yangyingliang@huawei.com>2022-11-10 23:24:41 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-11-25 17:36:50 +0100
commit7ed540bcee2e24479524b9705cc7462b2652f944 (patch)
tree736102ca7a9f47ba2c7803b9384dfb758e01a051
parent93d0af106bebcac2d7160a1cef34fd53cd567c33 (diff)
downloadlinux-7ed540bcee2e24479524b9705cc7462b2652f944.tar.gz
linux-7ed540bcee2e24479524b9705cc7462b2652f944.tar.bz2
linux-7ed540bcee2e24479524b9705cc7462b2652f944.zip
xen/pcpu: fix possible memory leak in register_pcpu()
[ Upstream commit da36a2a76b01b210ffaa55cdc2c99bc8783697c5 ] In device_add(), dev_set_name() is called to allocate name, if it returns error, the name need be freed. As comment of device_register() says, it should use put_device() to give up the reference in the error path. So fix this by calling put_device(), then the name can be freed in kobject_cleanup(). Fixes: f65c9bb3fb72 ("xen/pcpu: Xen physical cpus online/offline sys interface") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Reviewed-by: Juergen Gross <jgross@suse.com> Link: https://lore.kernel.org/r/20221110152441.401630-1-yangyingliang@huawei.com Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/xen/pcpu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/pcpu.c b/drivers/xen/pcpu.c
index cdc6daa7a9f6..9cf7085a260b 100644
--- a/drivers/xen/pcpu.c
+++ b/drivers/xen/pcpu.c
@@ -228,7 +228,7 @@ static int register_pcpu(struct pcpu *pcpu)
err = device_register(dev);
if (err) {
- pcpu_release(dev);
+ put_device(dev);
return err;
}