From: Michal Kubeček Date: Tue, 20 May 2014 06:29:35 +0000 (+0200) Subject: bonding: fix vlan_features computing X-Git-Tag: v4.14-rc1~7383^2~172^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a9b3ace44c7d4eb021a78a4d2e6bb812c34f086f;p=platform%2Fkernel%2Flinux-rpi.git bonding: fix vlan_features computing bond_compute_features() uses netdev_increment_features() to combine vlan_features of slaves into vlan_features of the bond. As netdev_increment_features() only adds most features and we start with BOND_VLAN_FEATURES, we can end up with features none of the slaves provided. If there is at least one slave, initialize vlan_features only with the flags in NETIF_F_ALL_FOR_ALL. Right now there is none in BOND_VLAN_FEATURES but stating it explicitely will make the code more future proof. Signed-off-by: Michal Kubecek Signed-off-by: David S. Miller --- diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 7123205..9071139 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1038,6 +1038,7 @@ static void bond_compute_features(struct bonding *bond) if (!bond_has_slaves(bond)) goto done; + vlan_features &= NETIF_F_ALL_FOR_ALL; bond_for_each_slave(bond, slave, iter) { vlan_features = netdev_increment_features(vlan_features,