diff options
author | Michal Kubeček <mkubecek@suse.cz> | 2014-05-20 08:29:45 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-22 15:07:23 -0400 |
commit | 3625920b62c32041f796f0ca14da84731de40d57 (patch) | |
tree | 6eff4a2f3320213c451d73a24eda76083628e01c | |
parent | a9b3ace44c7d4eb021a78a4d2e6bb812c34f086f (diff) |
teaming: fix vlan_features computing
__team_compute_features() uses netdev_increment_features() to
combine vlan_features of slaves into vlan_features of the team.
As netdev_increment_features() only adds most features and we
start with TEAM_VLAN_FEATURES, we can end up with features none
of the slaves provided.
Initialize vlan_features only with the flags which are both in
TEAM_VLAN_FEATURES and NETIF_F_ALL_FOR_ALL. Right now there is
no such feature so that we actually initialize vlan_features
with zero but stating it explicitely will make the code more
future proof.
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/team/team.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 767fe61b5ac9..9a9ce8debefa 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -968,7 +968,7 @@ static void team_port_disable(struct team *team, static void __team_compute_features(struct team *team) { struct team_port *port; - u32 vlan_features = TEAM_VLAN_FEATURES; + u32 vlan_features = TEAM_VLAN_FEATURES & NETIF_F_ALL_FOR_ALL; unsigned short max_hard_header_len = ETH_HLEN; unsigned int flags, dst_release_flag = IFF_XMIT_DST_RELEASE; |