vlan: convert VLAN devices to use ndo_fix_features()
Note: get_flags was actually broken, because it should return the flags capped with vlan_features. This is now done implicitly by limiting netdev->hw_features. RX checksumming offload control is (and was) broken, as there was no way before to say whether it's done for tagged packets. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
6cb6a27c45
commit
8a0427bb68
@@ -327,10 +327,6 @@ static void vlan_sync_address(struct net_device *dev,
|
||||
static void vlan_transfer_features(struct net_device *dev,
|
||||
struct net_device *vlandev)
|
||||
{
|
||||
u32 old_features = vlandev->features;
|
||||
|
||||
vlandev->features &= ~dev->vlan_features;
|
||||
vlandev->features |= dev->features & dev->vlan_features;
|
||||
vlandev->gso_max_size = dev->gso_max_size;
|
||||
|
||||
if (dev->features & NETIF_F_HW_VLAN_TX)
|
||||
@@ -341,8 +337,8 @@ static void vlan_transfer_features(struct net_device *dev,
|
||||
#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
|
||||
vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid;
|
||||
#endif
|
||||
if (old_features != vlandev->features)
|
||||
netdev_features_change(vlandev);
|
||||
|
||||
netdev_update_features(vlandev);
|
||||
}
|
||||
|
||||
static void __vlan_device_event(struct net_device *dev, unsigned long event)
|
||||
|
Reference in New Issue
Block a user