]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: thunderbolt: fix memory leak in tbnet_open()
authorZhengchao Shao <shaozhengchao@huawei.com>
Wed, 7 Dec 2022 01:50:01 +0000 (09:50 +0800)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:02:57 +0000 (14:02 +0100)
[ Upstream commit ed14e5903638f6eb868e3e2b4e610985e6a6c876 ]

When tb_ring_alloc_rx() failed in tbnet_open(), ida that allocated in
tb_xdomain_alloc_out_hopid() is not released. Add
tb_xdomain_release_out_hopid() to the error path to release ida.

Fixes: 180b0689425c ("thunderbolt: Allow multiple DMA tunnels over a single XDomain connection")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/20221207015001.1755826-1-shaozhengchao@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit b9274dbe399952a8175db2e1ee148b7c9ba2b538)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/net/thunderbolt.c

index 12914964022530ffbf03455916b8f7b124bd2dda..3395dcb0b262b0f8d41d1e4f632950adf10604ad 100644 (file)
@@ -902,6 +902,7 @@ static int tbnet_open(struct net_device *dev)
                                tbnet_start_poll, net);
        if (!ring) {
                netdev_err(dev, "failed to allocate Rx ring\n");
+               tb_xdomain_release_out_hopid(xd, hopid);
                tb_ring_free(net->tx_ring.ring);
                net->tx_ring.ring = NULL;
                return -ENOMEM;