pcmcia: ds: fix refcount leak in pcmcia_device_add()
[ Upstream commit 402ab979b29126068e0b596b641422ff7490214c ] As the comment of device_register() says, it should use put_device() to give up the reference in the error path. Then, insofar resources will be freed in pcmcia_release_dev(), the error path is no longer needed. In particular, this means that the (previously missing) dropping of the reference to &p_dev->function_config->ref is now handled by pcmcia_release_dev(). Fixes: 360b65b95bae ("[PATCH] pcmcia: make config_t independent, add reference counting") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> [linux@dominikbrodowski.net: simplification, commit message rewrite] Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
cd154225d4
commit
84540ef924
@ -578,8 +578,14 @@ static struct pcmcia_device *pcmcia_device_add(struct pcmcia_socket *s,
|
||||
|
||||
pcmcia_device_query(p_dev);
|
||||
|
||||
if (device_register(&p_dev->dev))
|
||||
goto err_unreg;
|
||||
if (device_register(&p_dev->dev)) {
|
||||
mutex_lock(&s->ops_mutex);
|
||||
list_del(&p_dev->socket_device_list);
|
||||
s->device_count--;
|
||||
mutex_unlock(&s->ops_mutex);
|
||||
put_device(&p_dev->dev);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return p_dev;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user