diff options
author | Yang Yingliang <yangyingliang@huawei.com> | 2022-11-10 18:24:41 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-11-25 19:45:47 +0300 |
commit | bb9924a6edd9d4a9ef83a5f337af60f8a7a68f98 (patch) | |
tree | 7cca5a330472e417afaf08a4dc7c2087887d1d24 | |
parent | d6a561bd4c53c5fc8cade48a555d3dc6acfb2c5b (diff) | |
download | linux-bb9924a6edd9d4a9ef83a5f337af60f8a7a68f98.tar.xz |
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.c | 2 |
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; } |