]> 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>
Sat, 17 Jan 2026 15:31:23 +0000 (16:31 +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 35b886385f3298e18a9192e833fd874b917d78bd..77a99c8ab01c7ec6df6b711ae1cc75821f36d46c 100644 (file)
@@ -4986,7 +4986,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);