Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Two easily resolvable overlapping change conflicts, one in TCP and one in the eBPF verifier. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -8215,7 +8215,7 @@ static netdev_features_t netdev_sync_upper_features(struct net_device *lower,
|
||||
netdev_features_t feature;
|
||||
int feature_bit;
|
||||
|
||||
for_each_netdev_feature(&upper_disables, feature_bit) {
|
||||
for_each_netdev_feature(upper_disables, feature_bit) {
|
||||
feature = __NETIF_F_BIT(feature_bit);
|
||||
if (!(upper->wanted_features & feature)
|
||||
&& (features & feature)) {
|
||||
@@ -8235,7 +8235,7 @@ static void netdev_sync_lower_features(struct net_device *upper,
|
||||
netdev_features_t feature;
|
||||
int feature_bit;
|
||||
|
||||
for_each_netdev_feature(&upper_disables, feature_bit) {
|
||||
for_each_netdev_feature(upper_disables, feature_bit) {
|
||||
feature = __NETIF_F_BIT(feature_bit);
|
||||
if (!(features & feature) && (lower->features & feature)) {
|
||||
netdev_dbg(upper, "Disabling feature %pNF on lower dev %s.\n",
|
||||
|
@@ -2804,8 +2804,7 @@ static int bpf_skb_proto_4_to_6(struct sk_buff *skb)
|
||||
u32 off = skb_mac_header_len(skb);
|
||||
int ret;
|
||||
|
||||
/* SCTP uses GSO_BY_FRAGS, thus cannot adjust it. */
|
||||
if (skb_is_gso(skb) && unlikely(skb_is_gso_sctp(skb)))
|
||||
if (!skb_is_gso_tcp(skb))
|
||||
return -ENOTSUPP;
|
||||
|
||||
ret = skb_cow(skb, len_diff);
|
||||
@@ -2846,8 +2845,7 @@ static int bpf_skb_proto_6_to_4(struct sk_buff *skb)
|
||||
u32 off = skb_mac_header_len(skb);
|
||||
int ret;
|
||||
|
||||
/* SCTP uses GSO_BY_FRAGS, thus cannot adjust it. */
|
||||
if (skb_is_gso(skb) && unlikely(skb_is_gso_sctp(skb)))
|
||||
if (!skb_is_gso_tcp(skb))
|
||||
return -ENOTSUPP;
|
||||
|
||||
ret = skb_unclone(skb, GFP_ATOMIC);
|
||||
@@ -2972,8 +2970,7 @@ static int bpf_skb_net_grow(struct sk_buff *skb, u32 len_diff)
|
||||
u32 off = skb_mac_header_len(skb) + bpf_skb_net_base_len(skb);
|
||||
int ret;
|
||||
|
||||
/* SCTP uses GSO_BY_FRAGS, thus cannot adjust it. */
|
||||
if (skb_is_gso(skb) && unlikely(skb_is_gso_sctp(skb)))
|
||||
if (!skb_is_gso_tcp(skb))
|
||||
return -ENOTSUPP;
|
||||
|
||||
ret = skb_cow(skb, len_diff);
|
||||
@@ -3002,8 +2999,7 @@ static int bpf_skb_net_shrink(struct sk_buff *skb, u32 len_diff)
|
||||
u32 off = skb_mac_header_len(skb) + bpf_skb_net_base_len(skb);
|
||||
int ret;
|
||||
|
||||
/* SCTP uses GSO_BY_FRAGS, thus cannot adjust it. */
|
||||
if (skb_is_gso(skb) && unlikely(skb_is_gso_sctp(skb)))
|
||||
if (!skb_is_gso_tcp(skb))
|
||||
return -ENOTSUPP;
|
||||
|
||||
ret = skb_unclone(skb, GFP_ATOMIC);
|
||||
|
@@ -356,6 +356,8 @@ static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
|
||||
*/
|
||||
void *netdev_alloc_frag(unsigned int fragsz)
|
||||
{
|
||||
fragsz = SKB_DATA_ALIGN(fragsz);
|
||||
|
||||
return __netdev_alloc_frag(fragsz, GFP_ATOMIC);
|
||||
}
|
||||
EXPORT_SYMBOL(netdev_alloc_frag);
|
||||
@@ -369,6 +371,8 @@ static void *__napi_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
|
||||
|
||||
void *napi_alloc_frag(unsigned int fragsz)
|
||||
{
|
||||
fragsz = SKB_DATA_ALIGN(fragsz);
|
||||
|
||||
return __napi_alloc_frag(fragsz, GFP_ATOMIC);
|
||||
}
|
||||
EXPORT_SYMBOL(napi_alloc_frag);
|
||||
|
Reference in New Issue
Block a user