mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 16:52:18 +00:00
team: Fix feature exposure when no ports are present
Small follow-up to align this to an equivalent behavior as the bond driver. The change in3625920b62
("teaming: fix vlan_features computing") removed the netdevice vlan_features when there is no team port attached, yet it leaves the full set of enc_features intact. Instead, leave the default features as pre3625920b62
, and recompute once we do have ports attached. Also, similarly as in bonding case, call the netdev_base_features() helper on the enc_features. Fixes:3625920b62
("teaming: fix vlan_features computing") Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org> Link: https://patch.msgid.link/20241213123657.401868-1-daniel@iogearbox.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
fbbd84af6b
commit
e78c20f327
@ -998,9 +998,13 @@ static void __team_compute_features(struct team *team)
|
||||
unsigned int dst_release_flag = IFF_XMIT_DST_RELEASE |
|
||||
IFF_XMIT_DST_RELEASE_PERM;
|
||||
|
||||
vlan_features = netdev_base_features(vlan_features);
|
||||
|
||||
rcu_read_lock();
|
||||
if (list_empty(&team->port_list))
|
||||
goto done;
|
||||
|
||||
vlan_features = netdev_base_features(vlan_features);
|
||||
enc_features = netdev_base_features(enc_features);
|
||||
|
||||
list_for_each_entry_rcu(port, &team->port_list, list) {
|
||||
vlan_features = netdev_increment_features(vlan_features,
|
||||
port->dev->vlan_features,
|
||||
@ -1010,11 +1014,11 @@ static void __team_compute_features(struct team *team)
|
||||
port->dev->hw_enc_features,
|
||||
TEAM_ENC_FEATURES);
|
||||
|
||||
|
||||
dst_release_flag &= port->dev->priv_flags;
|
||||
if (port->dev->hard_header_len > max_hard_header_len)
|
||||
max_hard_header_len = port->dev->hard_header_len;
|
||||
}
|
||||
done:
|
||||
rcu_read_unlock();
|
||||
|
||||
team->dev->vlan_features = vlan_features;
|
||||
|
Loading…
Reference in New Issue
Block a user