Skip to content

Commit 037eb44

Browse files
committed
kernel: bump 6.6 to 6.6.51
1 parent 53661b6 commit 037eb44

File tree

2 files changed

+131
-2
lines changed

2 files changed

+131
-2
lines changed

include/kernel-6.6

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
LINUX_VERSION-6.6 = .50
2-
LINUX_KERNEL_HASH-6.6.50 = c065e36daf28210060c91a37ef3e92ac5814784e634577e04e406297ead2e86e
1+
LINUX_VERSION-6.6 = .51
2+
LINUX_KERNEL_HASH-6.6.51 = 1c0c9a14650879c4913efdbac428ba31a540c3d987155ddf34d33e11eca008b3
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
From: Felix Fietkau <nbd@nbd.name>
2+
Date: Thu, 15 Aug 2024 21:15:13 +0200
3+
Subject: [PATCH] net: remove NETIF_F_GSO_FRAGLIST from NETIF_F_GSO_SOFTWARE
4+
5+
Several drivers set NETIF_F_GSO_SOFTWARE, but mangle fraglist GRO packets
6+
in a way that they can't be properly segmented anymore.
7+
In order to properly deal with this, remove fraglist GSO from
8+
NETIF_F_GSO_SOFTWARE and switch to NETIF_F_GSO_SOFTWARE_ALL (which includes
9+
fraglist GSO) in places where it's safe to add.
10+
11+
Signed-off-by: Felix Fietkau <nbd@nbd.name>
12+
---
13+
14+
--- a/drivers/net/dummy.c
15+
+++ b/drivers/net/dummy.c
16+
@@ -118,7 +118,7 @@ static void dummy_setup(struct net_devic
17+
dev->flags &= ~IFF_MULTICAST;
18+
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE;
19+
dev->features |= NETIF_F_SG | NETIF_F_FRAGLIST;
20+
- dev->features |= NETIF_F_GSO_SOFTWARE;
21+
+ dev->features |= NETIF_F_GSO_SOFTWARE_ALL;
22+
dev->features |= NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_LLTX;
23+
dev->features |= NETIF_F_GSO_ENCAP_ALL;
24+
dev->hw_features |= dev->features;
25+
--- a/drivers/net/loopback.c
26+
+++ b/drivers/net/loopback.c
27+
@@ -176,7 +176,7 @@ static void gen_lo_setup(struct net_devi
28+
dev->flags = IFF_LOOPBACK;
29+
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE;
30+
netif_keep_dst(dev);
31+
- dev->hw_features = NETIF_F_GSO_SOFTWARE;
32+
+ dev->hw_features = NETIF_F_GSO_SOFTWARE_ALL;
33+
dev->features = NETIF_F_SG | NETIF_F_FRAGLIST
34+
| NETIF_F_GSO_SOFTWARE
35+
| NETIF_F_HW_CSUM
36+
--- a/drivers/net/macvlan.c
37+
+++ b/drivers/net/macvlan.c
38+
@@ -896,7 +896,7 @@ static int macvlan_hwtstamp_set(struct n
39+
static struct lock_class_key macvlan_netdev_addr_lock_key;
40+
41+
#define ALWAYS_ON_OFFLOADS \
42+
- (NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE | \
43+
+ (NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE_ALL | \
44+
NETIF_F_GSO_ROBUST | NETIF_F_GSO_ENCAP_ALL)
45+
46+
#define ALWAYS_ON_FEATURES (ALWAYS_ON_OFFLOADS | NETIF_F_LLTX)
47+
--- a/include/linux/netdev_features.h
48+
+++ b/include/linux/netdev_features.h
49+
@@ -219,13 +219,14 @@ static inline int find_next_netdev_featu
50+
51+
/* List of features with software fallbacks. */
52+
#define NETIF_F_GSO_SOFTWARE (NETIF_F_ALL_TSO | NETIF_F_GSO_SCTP | \
53+
- NETIF_F_GSO_UDP_L4 | NETIF_F_GSO_FRAGLIST)
54+
+ NETIF_F_GSO_UDP_L4)
55+
+#define NETIF_F_GSO_SOFTWARE_ALL (NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_FRAGLIST)
56+
57+
/*
58+
* If one device supports one of these features, then enable them
59+
* for all in netdev_increment_features.
60+
*/
61+
-#define NETIF_F_ONE_FOR_ALL (NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ROBUST | \
62+
+#define NETIF_F_ONE_FOR_ALL (NETIF_F_GSO_SOFTWARE_ALL | NETIF_F_GSO_ROBUST | \
63+
NETIF_F_SG | NETIF_F_HIGHDMA | \
64+
NETIF_F_FRAGLIST | NETIF_F_VLAN_CHALLENGED)
65+
66+
--- a/net/8021q/vlan.h
67+
+++ b/net/8021q/vlan.h
68+
@@ -108,7 +108,7 @@ static inline netdev_features_t vlan_tnl
69+
netdev_features_t ret;
70+
71+
ret = real_dev->hw_enc_features &
72+
- (NETIF_F_CSUM_MASK | NETIF_F_GSO_SOFTWARE |
73+
+ (NETIF_F_CSUM_MASK | NETIF_F_GSO_SOFTWARE_ALL |
74+
NETIF_F_GSO_ENCAP_ALL);
75+
76+
if ((ret & NETIF_F_GSO_ENCAP_ALL) && (ret & NETIF_F_CSUM_MASK))
77+
--- a/net/8021q/vlan_dev.c
78+
+++ b/net/8021q/vlan_dev.c
79+
@@ -583,7 +583,7 @@ static int vlan_dev_init(struct net_devi
80+
dev->state |= (1 << __LINK_STATE_NOCARRIER);
81+
82+
dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |
83+
- NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE |
84+
+ NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE_ALL |
85+
NETIF_F_GSO_ENCAP_ALL |
86+
NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |
87+
NETIF_F_ALL_FCOE;
88+
@@ -676,7 +676,7 @@ static netdev_features_t vlan_dev_fix_fe
89+
if (lower_features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
90+
lower_features |= NETIF_F_HW_CSUM;
91+
features = netdev_intersect_features(features, lower_features);
92+
- features |= old_features & (NETIF_F_SOFT_FEATURES | NETIF_F_GSO_SOFTWARE);
93+
+ features |= old_features & (NETIF_F_SOFT_FEATURES | NETIF_F_GSO_SOFTWARE_ALL);
94+
features |= NETIF_F_LLTX;
95+
96+
return features;
97+
--- a/net/core/sock.c
98+
+++ b/net/core/sock.c
99+
@@ -2441,7 +2441,7 @@ void sk_setup_caps(struct sock *sk, stru
100+
if (sk_is_tcp(sk))
101+
sk->sk_route_caps |= NETIF_F_GSO;
102+
if (sk->sk_route_caps & NETIF_F_GSO)
103+
- sk->sk_route_caps |= NETIF_F_GSO_SOFTWARE;
104+
+ sk->sk_route_caps |= NETIF_F_GSO_SOFTWARE_ALL;
105+
if (unlikely(sk->sk_gso_disabled))
106+
sk->sk_route_caps &= ~NETIF_F_GSO_MASK;
107+
if (sk_can_gso(sk)) {
108+
--- a/net/mac80211/ieee80211_i.h
109+
+++ b/net/mac80211/ieee80211_i.h
110+
@@ -1996,7 +1996,7 @@ void ieee80211_color_collision_detection
111+
/* interface handling */
112+
#define MAC80211_SUPPORTED_FEATURES_TX (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
113+
NETIF_F_HW_CSUM | NETIF_F_SG | \
114+
- NETIF_F_HIGHDMA | NETIF_F_GSO_SOFTWARE | \
115+
+ NETIF_F_HIGHDMA | NETIF_F_GSO_SOFTWARE_ALL | \
116+
NETIF_F_HW_TC)
117+
#define MAC80211_SUPPORTED_FEATURES_RX (NETIF_F_RXCSUM)
118+
#define MAC80211_SUPPORTED_FEATURES (MAC80211_SUPPORTED_FEATURES_TX | \
119+
--- a/net/openvswitch/vport-internal_dev.c
120+
+++ b/net/openvswitch/vport-internal_dev.c
121+
@@ -110,7 +110,7 @@ static void do_setup(struct net_device *
122+
123+
netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST |
124+
NETIF_F_HIGHDMA | NETIF_F_HW_CSUM |
125+
- NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL;
126+
+ NETIF_F_GSO_SOFTWARE_ALL | NETIF_F_GSO_ENCAP_ALL;
127+
128+
netdev->vlan_features = netdev->features;
129+
netdev->hw_enc_features = netdev->features;

0 commit comments

Comments
 (0)