]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerJakub Kicinski <kuba@kernel.org>
Sun, 4 Jan 2026 18:26:11 +0000 (10:26 -0800)
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>
include/linux/netdevice.h

index 5870a9e514a51276b72cafcd8fd2d92665efbfa1..d99b0fbc1942ad1dbbd372cfb9e809e413251f15 100644 (file)
@@ -5323,7 +5323,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);