From nobody Sun Feb 8 11:44:01 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 A44AB2FFF90 for ; Thu, 22 Jan 2026 18:40:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769107215; cv=none; b=b1eVVBReaqV98NLJxfmRThwS66Sf9ECNqQekbA7ZtjnkVGPUsLrqbPKrROnn01d0JV4Ywae0ghfIhuq7TVpcFJwnkQ0zcnS0uiO/r7B9sAGtJT7M7SLypO5Sw+0osY+lpLqJ7smOjKdzDhGkPj9vqN0WY4PRSZNd0H8aLVUq4qs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769107215; c=relaxed/simple; bh=QRCHqMHUl6k4oyqDF1yNGbk00enGNL+39HiKgi93CiI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=PT5zTRSZ5QBbdmgMZCPIWiBSIu1urTldIwue24lBzqdiFsng1RHVulZJysEmJ3T4ldKCmfh64Eou76a/w14skH0ku+MPJ1U7V7n2/KgKnCYFnyrVbujtFBmzYHeQBNk+5OFHTiFZDIvpJGbkVbTIAk/0fHCWSgZ3SsbcooqeSgo= 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=k8EEmdl3; arc=none smtp.client-ip=209.85.214.177 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="k8EEmdl3" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2a7786d7895so9166275ad.1 for ; Thu, 22 Jan 2026 10:40:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769107209; x=1769712009; 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=/kwJ0a0SAodTDho6g2OsEkjwx23towh2Gp2df1yGT70=; b=k8EEmdl3q+xkmOq7vPovi1eGg12BR/dsLNka+NWBRzYjbTigXFTNQtYhME4rzt4l0P Dpqv784CW0Ae0HCM5BHpSjTu9bo4XEHGdzrxPIKlScy/LtShO4dBZMf1LGgolWdFw3mm vuLdwXzxcpysCWEAIwlNTFtudEkL6YFPCcTFDsGvewRNzfljVAoLnObbH31q2Kd+FXzt jVV1H44fsGpspgWcjgRbDbzRwC5MC2o/qNszdWw+CQVTfokxK7mObZxGiuyiQ39qDrui RQKrCQtuzyeZaasC1UfBl+YwBhOMUjQDibBXbnEbJGe2Q3oiIcL7COBMX4k/bA7m00l2 RK4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769107209; x=1769712009; 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=/kwJ0a0SAodTDho6g2OsEkjwx23towh2Gp2df1yGT70=; b=IbUZs1JF+vVCZ3/nRp31MFo99DGT1FLhPrO8H19ZQhaoFPwe9/jVqwhw4D9X4QMD5t ceUYAeGttq0kcanf+L+3D1yk5yryEyRsCiLp95p0OXSTnBBMFp+3xL9nfFcxfkMZZEVB R/Cy4RstxXIryb+BbiKzeBxi63OJTpvXxzBToDQu7TFVqJcKu6vXPG6LgCRz3gSxHgw2 dZBvQR3pfX24rz0sPg7g8GRamUY/szFrXUpaW3p06CDGBtLeeN/tqw0BanQ0inRCK3Tb BlHHrpl+l7+9QM8Dnl16YjnVNBBNSOpUecpcHzlF2/NnG/rEuSzsdlExuZBZWceuf142 t8sw== X-Forwarded-Encrypted: i=1; AJvYcCWIzBEBgE4wKUuv9G4dhaRiwuDJS487miU0XwZmt9kWuIz7GJbZTaA5K6w7YGjj7h14A5m5+O5jhBrv66o=@vger.kernel.org X-Gm-Message-State: AOJu0YyAISTy/aKKzshvQlF6cNCXx6KH76ddD7KqwzkwSxWA7305m2/z 1Y3zPKruVWCJAW2wHOO3NVvehUjdEfXnkxWw5cbxp9eY+4sumQOpmnk= X-Gm-Gg: AZuq6aJ/JiCxRyXuqp14q8M9DofUOG49Y3rx2ObH2oxh3//J5wvYTnclWkQMObZ8/VG HNfQlKyxssEDW/fS/vn+FQ40tWpz1FlHVR8etotZMdtHMjceOxVlB1+PNcwO6NWI46I6SOhHXnE 9YJZ3YdspnGce0vLlh4rIhy0hqSUPMGK1LF00lduIYAGR5Pf3zxWMOZMd/yIIaqP13z2/yOWvx6 hPe6ycEmT7JlFUx3dfhquriFVfgCpIYVgPSwAd1Xw995XuG2tq+rYsgQ5feaZ5Wzmsf6212Nb2Q ZgUN9hPiMkVdvDeaFx1vPGCXXaGXj6WSscAzexrANn4q7HQI//rARgP5FL27AYd+IdF/y6IC1Tn BKk3HQNOeXidL+jj1XW4lYX8QQB3QuvtULZ1K05TH8QHNwq/DDcZY5rSvWAl5XG+Fdvw+ck35/r +ocs6RH16cP9RlcYA= X-Received: by 2002:a17:903:1208:b0:2a0:bae5:b580 with SMTP id d9443c01a7336-2a7fe44aca3mr4062115ad.3.1769107208630; Thu, 22 Jan 2026 10:40:08 -0800 (PST) Received: from DESKTOP-BKIPFGN ([38.76.140.13]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a7193dd523sm191817745ad.62.2026.01.22.10.40.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jan 2026 10:40:08 -0800 (PST) From: Kery Qi To: tariqt@nvidia.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: jackm@dev.mellanox.co.il, ogerlitz@mellanox.com, monis@mellanox.com, netdev@vger.kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, Kery Qi Subject: [PATCH] net/mlx4: fix MAC table total count corruption in __mlx4_unregister_mac() Date: Fri, 23 Jan 2026 02:39:07 +0800 Message-ID: <20260122183906.2015-2-qikeyu2017@gmail.com> X-Mailer: git-send-email 2.50.1.windows.1 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 __mlx4_unregister_mac(), when operating in mf_bonded mode (SR-IOV with bonding), it appears that the code might be incorrectly decrementing table->total instead of dup_table->total when cleaning up the duplicate table entry. If this is the case, it would cause the primary table's total counter to be decremented twice (once for itself and once when it should decrement the duplicate table), leading to counter corruption. Over time, table->total could become negative, which would break the "table->total =3D=3D table->max" fullness check in __mlx4_register_mac(). The registration path correctly increments both counters: ++table->total; if (dup) { ... ++dup_table->total; } However, the unregistration path seems to have a typo: --table->total; if (dup) { ... --table->total; // Should this be --dup_table->total? Fixes: 5f61385d2ebc2 ("net/mlx4_core: Keep VLAN/MAC tables mirrored in mult= ifunc HA mode") Signed-off-by: Kery Qi --- drivers/net/ethernet/mellanox/mlx4/port.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/port.c b/drivers/net/ethern= et/mellanox/mlx4/port.c index e3d0b13c1610..6d0295c471da 100644 --- a/drivers/net/ethernet/mellanox/mlx4/port.c +++ b/drivers/net/ethernet/mellanox/mlx4/port.c @@ -410,7 +410,7 @@ void __mlx4_unregister_mac(struct mlx4_dev *dev, u8 por= t, u64 mac) if (mlx4_set_port_mac_table(dev, dup_port, dup_table->entries)) mlx4_warn(dev, "Fail to set mac in duplicate port %d during unregister\= n", dup_port); =20 - --table->total; + --dup_table->total; } out: if (dup) { --=20 2.34.1