gso: limit udp gso to egress-only virtual devices
[linux-2.6-microblaze.git] / drivers / net / team / team.c
index ddb6bf8..d6ff881 100644 (file)
@@ -1026,7 +1026,8 @@ static void __team_compute_features(struct team *team)
        }
 
        team->dev->vlan_features = vlan_features;
-       team->dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL;
+       team->dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL |
+                                    NETIF_F_GSO_UDP_L4;
        team->dev->hard_header_len = max_hard_header_len;
 
        team->dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
@@ -2117,7 +2118,7 @@ static void team_setup(struct net_device *dev)
                           NETIF_F_HW_VLAN_CTAG_RX |
                           NETIF_F_HW_VLAN_CTAG_FILTER;
 
-       dev->hw_features |= NETIF_F_GSO_ENCAP_ALL;
+       dev->hw_features |= NETIF_F_GSO_ENCAP_ALL | NETIF_F_GSO_UDP_L4;
        dev->features |= dev->hw_features;
 }
 
@@ -2942,7 +2943,7 @@ static int team_device_event(struct notifier_block *unused,
        case NETDEV_CHANGE:
                if (netif_running(port->dev))
                        team_port_change_check(port,
-                                              !!netif_carrier_ok(port->dev));
+                                              !!netif_oper_up(port->dev));
                break;
        case NETDEV_UNREGISTER:
                team_del_slave(port->team->dev, dev);