From nobody Wed Apr 15 16:26:17 2026 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (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 2A8202AE8D for ; Wed, 4 Mar 2026 07:14:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772608496; cv=none; b=Hsu6UamOwGT47ICbixhexXuXQMfYIL3r6Tvxh7P3g8aCS5zh8CnjAow2b8mcSeh1OY20X7Y4MbO8lYx6dVNno/shQRg2wgVH+cv07dJ/69Rcvm2w5y3c4Izgs38eBYLZKtvC6bgG4GD/E0KTEnL6CZCpBsYz0TWP/IeMZn6Kj3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772608496; c=relaxed/simple; bh=d7ycfxtxHAQH+Xa/U4MUsWEejn6XkK0ig3Qeh+LOugY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DM3zzyzIOzi1t6H/ZsOPTJVOWvVTKJydEvrMDBFJF5ngwrlQznbIEBFHVS/+XoFWtDjqAgGpG1gcJBkMNIRnT49U+huUC3WiO/2qAkgJkKU4h2Uv93B7HMcwTxRhdEJrOlE+55Df64etubIkAa5bdb1UuikyetTHtbnSP4Jci7k= 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=MPERMQ2o; arc=none smtp.client-ip=209.85.216.43 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="MPERMQ2o" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-358e3cc5e7eso2879529a91.0 for ; Tue, 03 Mar 2026 23:14:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772608494; x=1773213294; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5jcGv8G2dzteYqN5jx+LlxWUvFTHSalp0bozKSnOTzM=; b=MPERMQ2otb7xfLF3YBl5Qzhy76HXX2rr39LWUpy+8PSz18GsBWnqY8rMf8lECEE5UO hMgDVKbqR2ixZpUtVVRIEiw7E4wHV4224e1Rffd8nl/DfvHKWCJkq+bGuZCtXCboZpko VxLfUbuReznmVLm4/Y307C3RMM1X8rJkunwK0VxVNvpnoZXbgirVlkwf4offns807+kq MWzbSlf+c74KqgtidYUx5IgaWUbshlE3rqj0ywdQzX6tcdUtMH9U3n+zQXaDrc5YP5kn 0YUGqAgzmRUd+gz1lcYu6IuRRzHE+QOLzUCiKTrfCPdf/geRPSJgB1/OZJK1A19t2XNT KOlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772608494; x=1773213294; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5jcGv8G2dzteYqN5jx+LlxWUvFTHSalp0bozKSnOTzM=; b=sgdi7ZR/MeotCo7aCc8TSD9obJDEt3qHlUflrzzJc1jsyewM9paS+mfv6+LVa/xB2X LebJ95jJkB9tM5FiQfD3EcafOx3TGJIznrq686JPaJWGET+vfql0NN0gS3sO6y1V3k5q GWLqoDQVGFQ+UEwk6GnUPapc2gRfzqR/CaPU82G479/j8hIB+0O2UZgWChB/Eq7sBpKX EM3bXqEr7Y+Qf8WrYHVuDY2JztUrZUmiMxZcu29vW8rZ9KDxBKQIlwL7qgv95oghjue1 T77NK7+iS3kfsYvKQERLJtPCzCAOGoGtYtpKM0aqUnxiCAVkw0tse2VdB2/428O2ajFT XhUA== X-Forwarded-Encrypted: i=1; AJvYcCW3WdwwN8njHcaUmwUi3ZoI39t7PpsZxYNFGIKbLKvyCk5jf1mA4fb3yZ9Wra1ExX9PmJZ1eJc64E/FdBA=@vger.kernel.org X-Gm-Message-State: AOJu0YyOvDUvLJKDqWiFWmQmm9dwjc+5wrV2BbdIeLMMZrFyZjAWTm7h SNoQPb9LB1CkY1hzurKcbMBl24jff/U3e4GPJ6amVco1897vlnGNwQ53 X-Gm-Gg: ATEYQzzN/blXPOjpHqbH7Mxp+8aOeOqiZO1hkx9k17stFYjyK5YAlu3+j75lHpDWSTo evLbWsPLuzg8qRHcwkuHpUZZSdDdKxsxVQIBJq+MHtSXqkFZb602Wj3hxMfAQeR1jvsaBX9r/Vg 9C4XUHfr6vOupjbzcPr+yfv8zrwH6cw/2Wlzvwy7jKkwGjhIwm4pkoULHKdksxv+i3d2SxNjIgR B7KylFTFjYB7XsrXespWPR4Ctrt5B72je9v79a1LT5rfpDWDW+gC5/p1ghdKajkkPqNOfdPcnmn wKtHq7iRg+oHiDb2XdOo7iTOjzRREHKMogCBwl2Faj0fZ9gLZATAOP3QbSBeSj6+Rq0WjBV5l1C Kge/OiFM1byFnojrjA0Ss3E14Kl/vgyBgXIgIv9/OfM3GaQzwGGKyvKsvS83HaKJIv65MSO+CwY LVoZvsKtpBx8wEQ4Tm1LLCDo/jwGoodjYaicr8mKyrv19xbj/hshlpmbXmSD+4EAVlKiv5sm8a8 lJZnrVfkizWzZV94+dFUDN/+UZ2Kg2NBdl9OHedejU3MlrCrWV5 X-Received: by 2002:a17:90b:4ac7:b0:34a:9d9a:3f67 with SMTP id 98e67ed59e1d1-359a6a9fa39mr1234013a91.33.1772608494443; Tue, 03 Mar 2026 23:14:54 -0800 (PST) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([240e:34c:576b:6b60:293b:552b:9870:28a3]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359aa3ebb2csm85731a91.12.2026.03.03.23.14.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 23:14:53 -0800 (PST) From: Hangbin Liu Date: Wed, 04 Mar 2026 15:13:53 +0800 Subject: [PATCH net 1/2] bonding: do not set usable_slaves for broadcast mode Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-b4-bond_updelay-v1-1-f72eb2e454d0@gmail.com> References: <20260304-b4-bond_updelay-v1-0-f72eb2e454d0@gmail.com> In-Reply-To: <20260304-b4-bond_updelay-v1-0-f72eb2e454d0@gmail.com> To: Jay Vosburgh , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tonghao Zhang , Hangbin Liu , Nikolay Aleksandrov Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Jay Vosburgh , Liang Li X-Mailer: b4 0.14.3 After commit e0caeb24f538 ("net: bonding: update the slave array for broadc= ast mode"), broadcast mode will also set all_slaves and usable_slaves during bond_enslave(). But if we also set updelay, during enslave, the slave init state will be BOND_LINK_BACK. And later bond_update_slave_arr() will alloc usable_slaves but add nothing. This will cause bond_miimon_inspect() to have ignore_updelay always true. So the updelay will be always ignored. e.g. [ 6.498368] bond0: (slave veth2): link status definitely down, disabling= slave [ 7.536371] bond0: (slave veth2): link status up, enabling it in 0 ms [ 7.536402] bond0: (slave veth2): link status definitely up, 10000 Mbps = full duplex To fix it, we can either always call bond_update_slave_arr() on every place when link changes. Or, let's just not set usable_slaves for broadcast mode. Fixes: e0caeb24f538 ("net: bonding: update the slave array for broadcast mo= de") Reported-by: Liang Li Signed-off-by: Hangbin Liu --- drivers/net/bonding/bond_main.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_mai= n.c index 14ed91391fcc..93a32a368d31 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -5069,13 +5069,18 @@ static void bond_set_slave_arr(struct bonding *bond, { struct bond_up_slave *usable, *all; =20 - usable =3D rtnl_dereference(bond->usable_slaves); - rcu_assign_pointer(bond->usable_slaves, usable_slaves); - kfree_rcu(usable, rcu); - all =3D rtnl_dereference(bond->all_slaves); rcu_assign_pointer(bond->all_slaves, all_slaves); kfree_rcu(all, rcu); + + if (BOND_MODE(bond) =3D=3D BOND_MODE_BROADCAST) { + kfree_rcu(usable_slaves, rcu); + return; + } + + usable =3D rtnl_dereference(bond->usable_slaves); + rcu_assign_pointer(bond->usable_slaves, usable_slaves); + kfree_rcu(usable, rcu); } =20 static void bond_reset_slave_arr(struct bonding *bond) --=20 Git-155) From nobody Wed Apr 15 16:26:17 2026 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) (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 C9DD92EBDFA for ; Wed, 4 Mar 2026 07:15:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772608505; cv=none; b=N8PK1OSZFJir+QNqylXz9pYP5I7bIb5PwK0KZykJb14/es5MfF0YFb9tV+vAH+g+GCnLSe3FhnJgA4zDh3+udui10HvueDGYRyO41IHmmD3ca13040pVx+iLJQIytqDeNVJWYcT7flQllQoNK+uHFhdHy46YxecVWKE0U1B8Lyg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772608505; c=relaxed/simple; bh=4suyWihyC1ry/HvunGlIS6YHwIWLTnzKEYrI3QwXGaQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qp23N2q8wNduBlwk/ztRVzaVP7OpMNBCZV2YAlbVjjSHz9xCje/QWRkcwaRYTEiP9f6iIBKtn+vp0k9QZp8uOTlSS1VT9z78/8J0fioWcusZgDuSdanHkpOmKeRcXddurwEvFVznF1IZrYP/oqoy7TzB7qRXjRjd3cAmtkR6R0M= 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=lZpsIkHn; arc=none smtp.client-ip=209.85.215.175 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="lZpsIkHn" Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-c7059b9df33so2457239a12.0 for ; Tue, 03 Mar 2026 23:15:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772608504; x=1773213304; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=pDl+XTs6aW3UhEf8SPsZqwG+HpyZqHIJ08ht/L1JbFE=; b=lZpsIkHn34+/vdnx7ROu3/5LFy9fyVh5CrOqbHuNddNB+G/vHk+F9jpQrFsDH4EZNy QE5EtuLbpBZ5wY8TdsbzypBGHvy9fBwO/CEab9AQxMndlWdEtCp//2u/rrnCy3PW986L VyyGD5hSIZlQuizvLIf2Eo/upLixH0CD7pb300meaYdag8vxd5rY+seeOHc37kzBbU2g xdj/kp0KKp6h6DlM7uNTX2OS8sBLdUjcXlo4X+mTP+eZwONllkCHYM/ws72qmXglh5SM yeNCHmWhloyfd6G3llpEuxgIeEkcfYD/EBAbr7OyOOvjzjdedID6cJv99xxDy3INPKdO 0Lzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772608504; x=1773213304; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=pDl+XTs6aW3UhEf8SPsZqwG+HpyZqHIJ08ht/L1JbFE=; b=dhZHsb8HAPqm10Iws94ohyvVcy2oLv/6tKxII4BPiYkmMIzMQIk474Vl8YirBRyC2S jKMQTw6Om1aY8mWeZg54gN6pqN0ckx9z84Wy/Do0sqcyR80yqkZzWPDigA63is05bufw A47Zk7wCtxfsaqzGwrUHnSi9um8FakcSBNh7n6uvLdiaNbMH8BcBDD60Qifx115D2HPq AC5CvH0I19NcMjw0cQTkcR0FGkaDSj2Bcvdf7WqF5XfzNUIAyWgnfbn0UoUqmUJ9eJqF M9b2KCEkMxAo+jax0V6LlPvhFm+cn+sE0NZusLazI3VoebW7psSuyURb1AhlR08B0Nv8 K9VA== X-Forwarded-Encrypted: i=1; AJvYcCXV/fhC54+9K1jgA2UKHEE1JFnAp9NARnlEociMVZ3mA2yy0qylcsWfS/I2PVzhSuHHHGon8ZD1Chl0uTg=@vger.kernel.org X-Gm-Message-State: AOJu0YyjI4PqshzLqt/2WAf2DvbUITHzaLBNFjD/t6jc5UoW046A8duY 9m8c1IebFeS4se+Q5/uZcpXaeBP5KhGbIc6qL8bGXbVYWcv/LW3jLUoB X-Gm-Gg: ATEYQzzdzhJAnCJ/7Bm09XdBa+D8v0EpiNfoqKEqepmQzI7Sj4dTncZ5bsSF81Blo/g o4NGtkIMg2z4if9/lO9mkCxDeu9mGobfdsWbpHMoAEWDN6EjJ/VmlbKoybspkWdm+UpgoFil7oz 2KdoqTsdH/x/LX/ZRXPQlMn48/I5+Jf+yAh9KY95KUgSQ0Sj3NxFr7CK6m3RkBBRrCQoKCZ7ocq H00CqjDuSqEIpkkMJBPH3HjcjFMdddGJ96FakIE/eQ9tttqL1gACfx3RuPEbZemyMC5FH2mOn9c PborE0u6Pt+l10Bn8k+RLlsCvmT9lDUG3QBEHiS7h+4fLuPO47OozpsxS9g9knnkdHAefTc+2Kg YP8ZMYD/SyAsbLsUPiCwZH3ASDaoEbEIYxWklWSW+uTUizFSt3Oc7Iz25+ZN55S2MMusXWHMMmm 4EW5kvdVB98NOMAPJ2muuuC+z2m/DzHh92tPAd6QGUpRqQlo0qJ6RJD0F9iraOMODdYtAgAd1hn 8iS7BkmIILvwxeAbnqOxp5aopCuL7XmLF2SFf6fEm8e9ToWTeX1 X-Received: by 2002:a17:90b:2691:b0:359:84a3:1942 with SMTP id 98e67ed59e1d1-3599cecc8bamr4364578a91.13.1772608504029; Tue, 03 Mar 2026 23:15:04 -0800 (PST) Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa ([240e:34c:576b:6b60:293b:552b:9870:28a3]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359aa3ebb2csm85731a91.12.2026.03.03.23.14.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Mar 2026 23:15:03 -0800 (PST) From: Hangbin Liu Date: Wed, 04 Mar 2026 15:13:54 +0800 Subject: [PATCH net 2/2] bonding: handle BOND_LINK_FAIL, BOND_LINK_BACK as valid link states Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260304-b4-bond_updelay-v1-2-f72eb2e454d0@gmail.com> References: <20260304-b4-bond_updelay-v1-0-f72eb2e454d0@gmail.com> In-Reply-To: <20260304-b4-bond_updelay-v1-0-f72eb2e454d0@gmail.com> To: Jay Vosburgh , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tonghao Zhang , Hangbin Liu , Nikolay Aleksandrov Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Jay Vosburgh X-Mailer: b4 0.14.3 Before the fixed commit, we check slave->new_link during commit state, which values are only BOND_LINK_{NOCHANGE, UP, DOWN}. After the commit, we start using slave->link_new_state, which state also could be BOND_LINK_{FAIL, BACK}. For example, when we set updelay/downdelay, after a failover, the slave->link_new_state could be set to BOND_LINK_{FAIL, BACK} in bond_miimon_inspect(). And later in bond_miimon_commit(), it will treat it as invalid and print an error, which would cause confusion for users. [ 106.440254] bond0: (slave veth2): link status down for interface, disabl= ing it in 200 ms [ 106.440265] bond0: (slave veth2): invalid new link 1 on slave [ 106.648276] bond0: (slave veth2): link status definitely down, disabling= slave [ 107.480271] bond0: (slave veth2): link status up, enabling it in 200 ms [ 107.480288] bond0: (slave veth2): invalid new link 3 on slave [ 107.688302] bond0: (slave veth2): link status definitely up, 10000 Mbps = full duplex Let's handle BOND_LINK_{FAIL, BACK} as valid link states. Fixes: 1899bb325149 ("bonding: fix state transition issue in link monitorin= g") Signed-off-by: Hangbin Liu --- drivers/net/bonding/bond_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_mai= n.c index 93a32a368d31..444519078da3 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -2801,8 +2801,14 @@ static void bond_miimon_commit(struct bonding *bond) =20 continue; =20 + case BOND_LINK_FAIL: + case BOND_LINK_BACK: + slave_dbg(bond->dev, slave->dev, "link_new_state %d on slave\n", + slave->link_new_state); + continue; + default: - slave_err(bond->dev, slave->dev, "invalid new link %d on slave\n", + slave_err(bond->dev, slave->dev, "invalid link_new_state %d on slave\n", slave->link_new_state); bond_propose_link_state(slave, BOND_LINK_NOCHANGE); =20 --=20 Git-155)