From nobody Wed Apr 1 08:45:47 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54CAE39DBD4 for ; Tue, 31 Mar 2026 23:10:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774998607; cv=none; b=JPkP+/jOz5MvIdBEx/g28+7wdp95CBf5S6X55V7cO9zoxilu1dFo0Vy6Q4YhTIudPryFR9DtNB/5uB9aCEY3O+JvKOePvy5i7gcVwdDCFPKxye/JTJQisz2btcAm3HnzYx+wI6uzSs2HCBggxCPqdZ0x565sHJ8COA+N+5LdK3k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774998607; c=relaxed/simple; bh=jIYhy3Tr0zd/R9FJ4AlgvBQGYKaVjQcbo5TfKhfQCv0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bGior+Hw0Lu5e5LqntwsNdJjrl+dD+GvhWr3ARjBAeyP5wl5WwpW85Na0D7G4054EY4EKCIHXgQUw0j8bbLJZr5EdI5AMLJnb+3FefV04I91pxQyEzGvcZ7HBEvZVEDUCqyl/wLdoTJ5X82FMvJ8Uca2lSqzjTE3japu4XNFYr0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ef6I03y9; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ef6I03y9" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4838c15e3cbso51965195e9.3 for ; Tue, 31 Mar 2026 16:10:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774998605; x=1775603405; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HgA94iSrqf5CYeT8sU7RxuKb13syh7O6QAZ63AzV/UQ=; b=ef6I03y9fBPVTyy5c1cVu6k4cqYqMY4dZRj1IFbCz47W/WtOark59Fpv+NASGLV9ZW +KaboPvcMjsP+uGRQ0DCFHFBkghf7i4rCIkmEWW4kT9+aD4DkXX3bGEfepFOXcdiu6xC uzA1eFaL+PsLznvpMYt8yVWA4BOFoYwYW3mYa08hGPhD/3jurqdHtck8/LvLZvknoPIr R01vFRHdAAmQqWfypBnxD04TOjz0UOV/laqsO0BO3ZoRGuoT3/AECfNF0Ff1f6zOJLyY OW5IogS7FS9zNMJK11OP/OK4HM9jQwgvwfuHezg9Zp19UGIYCG9nUhKd3ZZwyuJ6CGcj vUjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774998605; x=1775603405; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HgA94iSrqf5CYeT8sU7RxuKb13syh7O6QAZ63AzV/UQ=; b=DIJkkMd/S3JPnJlZTWNn+YClLPV9GH9BMQOkO0TUcrhKLJOr/rRjZQjCmvV++7FlrX 4uo8j9uM6EvCqyFMublJyQwSa7VAHKl/UiZAj0f3O52vkLpKwFn50HAKfbuieROSw5ve Y3WLcfbs7sCD+A3VV3VRQyHoT3KGqNrXzVYTXlCHox+wbH0aYGjLsYVP3JAJdSOq4zr0 5QV2+NzDCaQ5x5+3378YjSxXu7HjlAWuJ7/k1zvo1rA7p+I6uQ0+7OQ+1OlFbIGBx6Le NSFOsEphYPWEEDgvhqOTx9MdVLiym0WyLbGlleZKO+pGwuhKKOJZ1slqgkSlDnAPYZ2/ S39Q== X-Forwarded-Encrypted: i=1; AJvYcCWUESjjO2/Z/aQufQopqSFh99oFQMAqE5yvzJbFMpVeLWp4xDCRr0gKnsBCKVBjr27AmnNhj9fwV2rjtMI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/rLbM/RfF1hYIWyhASrMfBlURyBrJb8Y8mXQBAxbHUQiOKnuq fdf/exNwGbxW0xK74PqYS9JqjFX/eCfTZI3FKY/DC1kQS1CQU4g4uiLJ X-Gm-Gg: ATEYQzw6tIDOHrvS1rQQNj1GhGYpzmcy5pHKn8H9KpV9u87D10BWkXWB80oaGslBPPV 9FEQ8NjTXnyQZvXsRS94zww7CfuRNiCZH+BrhbFkC4XDNLebWB3PFtgTu8p698ZeMz+MneQvIHf CCyG7ReYh/HTVJFIhu4P8srum6lIRlYPaqH2dtBuP+oW9ACMf6A2rJ2aadhJX7AiBWkapxl/1dB D6vEmh/0NNBgNHVFehLA8uOW5/120/BtX8tjLCt6Bd1s6XSXVvUdsI5gkNQaaLj+QQimwU88zUL okptTX+YTOqBimMBe2y9sSdoCDVV37SlxnIbZ5X7xDMunQ6pymfAz5A4ArS8EKQc1ayCEDe0mmR SVlQzLbjMfG3rzIZtbHVhkSiDxJDDZ0mGhzABjezNpS6W4IbLksv7FUBLvR9DC+IXZ9KhZ2oc5W athxbOqSPgtpSkESmtmnM6FLRe8b0VD8vW0WSX4s4pdjiVfS8Kd7dT0eIFkE+lCZ6V3W8a2W+V3 qoAX6TbHpci+m0cuiWmHClsD2t4Oi6mogBbuGMpUC+lSSuF X-Received: by 2002:a05:600c:8b85:b0:485:419c:4eba with SMTP id 5b1f17b1804b1-4888355e6bdmr20363485e9.1.1774998604467; Tue, 31 Mar 2026 16:10:04 -0700 (PDT) Received: from DESKTOP-NQ2T5I7.localdomain (heme-13-b2-v4wan-167795-cust403.vm32.cable.virginm.net. [81.108.45.148]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887e82e262sm68486775e9.10.2026.03.31.16.10.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 16:10:03 -0700 (PDT) From: Prathamesh Deshpande To: leon@kernel.org Cc: dledford@redhat.com, haggaie@mellanox.com, jgg@ziepe.ca, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, prathameshdeshpande7@gmail.com Subject: [PATCH v2] IB/mlx5: Fix tdn leak in mlx5_ib_alloc_transport_domain Date: Wed, 1 Apr 2026 00:04:54 +0100 Message-ID: <20260331230852.18479-1-prathameshdeshpande7@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260331134813.GE814676@unreal> References: <20260331134813.GE814676@unreal> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In mlx5_ib_alloc_transport_domain(), an early success path was returning 'err' (which is 0) instead of a literal 0. Additionally, as identified by Sashiko, if mlx5_ib_enable_lb() fails at the end of the function, the previously allocated transport domain (tdn) is leaked because it is never deallocated. Explicitly return 0 in the early success path and add error handling to deallocate the transport domain if loopback enablement fails. Signed-off-by: Prathamesh Deshpande --- v2: - Added deallocation of tdn if mlx5_ib_enable_lb() fails [Sashiko]. - Reworded commit message to reflect the functional fix and credit the tool. Hi Leon, Thanks for the feedback. I've incorporated the fix for the tdn leak identified by Sashiko into this v2. Thanks, Prathamesh drivers/infiniband/hw/mlx5/main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5= /main.c index 635002e684a5..c48dd78491eb 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -2068,9 +2068,13 @@ static int mlx5_ib_alloc_transport_domain(struct mlx= 5_ib_dev *dev, u32 *tdn, if ((MLX5_CAP_GEN(dev->mdev, port_type) !=3D MLX5_CAP_PORT_TYPE_ETH) || (!MLX5_CAP_GEN(dev->mdev, disable_local_lb_uc) && !MLX5_CAP_GEN(dev->mdev, disable_local_lb_mc))) - return err; + return 0; =20 - return mlx5_ib_enable_lb(dev, true, false); + err =3D mlx5_ib_enable_lb(dev, true, false); + if (err) + mlx5_cmd_dealloc_transport_domain(dev->mdev, *tdn, uid); + + return err; } =20 static void mlx5_ib_dealloc_transport_domain(struct mlx5_ib_dev *dev, u32 = tdn, --=20 2.43.0