most: core: fix leak on early registration failure
[ Upstream commit 2c198c272f9c9213b0fdf6b4a879f445c574f416 ]
A recent commit fixed a resource leak on early registration failures but
for some reason left out the first error path which still leaks the
resources associated with the interface.
Fix up also the first error path so that the interface is always
released on errors.
Fixes: 1f4c9d8a1021 ("most: core: fix resource leak in most_register_interface error paths")
Fixes: 723de0f917 ("staging: most: remove device from interface structure")
Cc: Christian Gromm <christian.gromm@microchip.com>
Cc: Navaneeth K <knavaneeth786@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260116162950.21578-1-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
c954666a07
commit
f1ba620f9e
|
|
@ -1282,12 +1282,17 @@ int most_register_interface(struct most_interface *iface)
|
|||
int id;
|
||||
struct most_channel *c;
|
||||
|
||||
if (!iface || !iface->enqueue || !iface->configure ||
|
||||
!iface->poison_channel || (iface->num_channels > MAX_CHANNELS))
|
||||
if (!iface)
|
||||
return -EINVAL;
|
||||
|
||||
device_initialize(iface->dev);
|
||||
|
||||
if (!iface->enqueue || !iface->configure || !iface->poison_channel ||
|
||||
(iface->num_channels > MAX_CHANNELS)) {
|
||||
put_device(iface->dev);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
id = ida_alloc(&mdev_id, GFP_KERNEL);
|
||||
if (id < 0) {
|
||||
dev_err(iface->dev, "Failed to allocate device ID\n");
|
||||
|
|
|
|||
Loading…
Reference in New Issue