]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates
authorDi Zhu <zhud@hygon.cn>
Wed, 24 Dec 2025 01:22:24 +0000 (09:22 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:12:10 +0000 (13:12 +0100)
[ Upstream commit 02d1e1a3f9239cdb3ecf2c6d365fb959d1bf39df ]

Directly increment the TSO features incurs a side effect: it will also
directly clear the flags in NETIF_F_ALL_FOR_ALL on the master device,
which can cause issues such as the inability to enable the nocache copy
feature on the bonding driver.

The fix is to include NETIF_F_ALL_FOR_ALL in the update mask, thereby
preventing it from being cleared.

Fixes: b0ce3508b25e ("bonding: allow TSO being set on bonding master")
Signed-off-by: Di Zhu <zhud@hygon.cn>
Link: https://patch.msgid.link/20251224012224.56185-1-zhud@hygon.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/netdevice.h

index d3a3e77a18df1f1f8f315719e385fba669e54687..dcf1b603cb516eeba23f0530e8da5bea2a0b33d5 100644 (file)
@@ -4890,7 +4890,8 @@ netdev_features_t netdev_increment_features(netdev_features_t all,
 static inline netdev_features_t netdev_add_tso_features(netdev_features_t features,
                                                        netdev_features_t mask)
 {
-       return netdev_increment_features(features, NETIF_F_ALL_TSO, mask);
+       return netdev_increment_features(features, NETIF_F_ALL_TSO |
+                                        NETIF_F_ALL_FOR_ALL, mask);
 }
 
 int __netdev_update_features(struct net_device *dev);