From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (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 C6DC328504F for ; Sun, 12 Apr 2026 01:19:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775956799; cv=none; b=OJbnfiQzCRFUmXWz9hKtKEdYujBLi9l32eZOqgAKbic5bQ/oBu7KMKRQZPVXDHRSCo1yiXJH1g34/Vy86+nvSBo8Q+WZ+ugoGjSWs4RZn6bxzmil+6vF5u9KYEicsWNjLOs+Zk5G31WJspmMgRbkp0ae5uCbmfdn6YtZyRNBCrU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775956799; c=relaxed/simple; bh=jSSZVL3njqqcJZu8uqW4apgriWbtKw3vW4rhUnJ829U=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=qceX4d2e8vsV5/n/Jipt4gzqtismVJ/UDItRSrKaSMF91sqUUpX4axLI+ya1F0VSxYVCWnF99sA/ba4mhhw5LT4Nhyu07bkuNZrzZ4ARrkBEaIj2ans0/HyucbmEkWs2XzLWMJd63M9sInDOKvj5LQpChcFI1FhbkIiLS04iMUw= 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=RTOPc06t; arc=none smtp.client-ip=209.85.221.49 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="RTOPc06t" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-43d17bb1c65so2133938f8f.0 for ; Sat, 11 Apr 2026 18:19:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775956796; x=1776561596; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=FMDTCkiVFft3vX3T+h0i/Ou46NAOiMulxREzZn7LBYY=; b=RTOPc06thhU7o5EcyH4BIgA8sSubSC4SqHZBV1g5JoBUvKJGAPN+SKAf1jdCw+o3MK o6wNcMQCvFowr2MVlV/ptpx251sr+iT3C1BqiU/qmmBk+Y8gMk4iKQub9UnAXQ14ccDF f9OHWZuEHFDwypNuoKX6SemT2XKReXL/o9Cdf0s7hu2PiW5FsqorejEOshZxQsAuHza7 x/bmwi8WxfKsNh1EGkHDqBYGAAnFVjMf5Zft52+la3ipaxe6e8BZic8EfgbMetAjszSw 9o08fMFVnkM7Inve2lJQ70y53YM2xbJl+OeFUWGgV8yN7G92hwDVNf+MjyWQgSZpM1Rd E9kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775956796; x=1776561596; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FMDTCkiVFft3vX3T+h0i/Ou46NAOiMulxREzZn7LBYY=; b=bK8x8PzRBsWWbL6P/AQ2tKr71LXbNn6OQFzN16zc9LViOGoIa/JhoCvNUvZKXjWJEX EY1KEwIrHkwjyb4DW13NW0FpDNOazB3eQ7XRDeDj05w3nGm0ZHAM58XBLkTFKYttC7nA K2a9CiPM+IV1sTmOhyIHr7H7KM3mSBWWn3rsBxNsI3kcRgBwwHw5Zyj0P+158ONAGojG k6jWuPfFNPF58PGvhlWPy/BAQAiZUYQxuqb4Lq56+dLS61OZ6+0LW2dMiUMeGMBcTIS6 ZWo47sGb1Gyf8pYonm0cgRj8AlUVPKy41WzZgI+XZ0TgfnNdQoCf9ksirBz+F+bAXlMy pbkg== X-Forwarded-Encrypted: i=1; AFNElJ+qBDMNlCEG3CFzq6gicKKhrmwgvsw91kUgh26BYCNYNGYBrlqXqCkr07zewHVrBUY1AXEaDyQeIhkfbUc=@vger.kernel.org X-Gm-Message-State: AOJu0YxYGQaldlv3szb1VEpN5ieVXNx8tB1bWjLAkRVIb30Y+unO/HeU T2ZOfL8kVkU7eASyqXoogx/I4CPq4Bq6ZiT9pO0hQACeRbpuZz3cHQU5 X-Gm-Gg: AeBDiesBvBBtQ53BPOlFetf6LOFlnza7mS1flG93GB6znelCShgCdEz0J/OLKD0wU3J HCo9Xh7LULxmWl4SU1DBaaUrY3uECcD2uUN4eOWwv01Xa6fJc9K+seMhggzUKgw49+6x5L+FC2D HSBg79qUXaNpnCQaolxu36kYNFXAXcl3+MbhQrJoGqN36G9SvmptiSbXheBZPzm5JY/p0KgtUqO F7+1oQWOWv3O415iwe18YwVAMDgfO37c5QzU+38WIJqITLDTgV6YxDb937cBzB4vkp6USL6lOtp 27sLCwgJtCrXFt9IkWmJ/d3BK4oa0L7WIMDLTtOY53gemRUULJJuJuczVZKwKIO1KhYhxjIzDS1 asJmk6mNVt7BfWZ2VedHMW0z6A1G5QCpj0Oy2RF/91Zfwnfu7DspDHaf7QN61xaFrcs4t5f/rEh 4QCaosBarm50pC2kRt9kOGV20GHdBTJLvQcTYBL2bCaC2CJ2vbPbQ0F1UrYCHdmSDQqv4E75HAE DH+PEmJdYlamnc9oSIWYa5vdi86AUiCXowFIKplhQ== X-Received: by 2002:a05:6000:2c02:b0:43d:75a2:44a1 with SMTP id ffacd0b85a97d-43d75a2463emr146199f8f.47.1775956795942; Sat, 11 Apr 2026 18:19:55 -0700 (PDT) Received: from SD.localdomain (heme-13-b2-v4wan-167795-cust403.vm32.cable.virginm.net. [81.108.45.148]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d63dec295sm19903643f8f.14.2026.04.11.18.19.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Apr 2026 18:19:55 -0700 (PDT) From: Prathamesh Deshpande To: Leon Romanovsky , Jason Gunthorpe Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, dledford@redhat.com, haggaie@mellanox.com, Prathamesh Deshpande Subject: [PATCH v10 0/2] IB/mlx5: Fix loopback rollback and locking Date: Sun, 12 Apr 2026 02:18:48 +0100 Message-ID: <20260412011942.13744-1-prathameshdeshpande7@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This series fixes transport-domain rollback and loopback state consistency in mlx5 IB. Patch 1 fixes TD rollback on mlx5_ib_enable_lb() failure, makes the success return path explicit, and initializes lb.mutex earlier. Patch 2 serializes MP force-enable state updates with lb.mutex and implements capability-aware thresholds (td_base) to ensure correct loopback behavior on both TD-capable and no-TD hardware. v10: - Initialize lb.mutex before multiport master init to avoid race. - Use <= td_base in disable paths to handle idle/no-TD cases. v9: - Address race/state issues around force_enable and enabled. - Fix TD leak on failure after successful allocation. - Implement hardware-aware thresholds via mlx5_ib_lb_td_base() to handle both TD-capable and no-TD hardware correctly. - Serialize MP force-enable transitions under lb.mutex. v8: - Resubmitted as a fresh, independent thread per maintainer request. - No functional changes since v7. v7: - Split the series into two patches to isolate the return-value/mutex initialization fix from the refcounting logic. - Moved force_enable check after increments/decrements to fix leaks. - Updated hardware disable condition to a strict zero-check. v1-v6: - Initial combined versions. - Added deallocation of tdn on failure. - Moved mutex_init to stage_init_init to prevent crashes on non-ETH. - Implemented atomic rollback in enable/disable paths. Prathamesh Deshpande (2): IB/mlx5: Fix transport-domain rollback and initialize lb mutex earlier IB/mlx5: Serialize force-enable state and preserve loopback accounting drivers/infiniband/hw/mlx5/main.c | 82 ++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 19 deletions(-) -- 2.43.0