ixgbe: updates vlan feature flags to enable FCoE offloads on vlan interface
authorVasu Dev <vasu.dev@intel.com>
Fri, 14 Aug 2009 12:41:28 +0000 (12:41 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Aug 2009 23:12:08 +0000 (16:12 -0700)
Updates netdev->vlan_features for NETIF_F_FCOE_CRC and NETIF_F_FSO, so that
FCoE CRC and GSO offloads will get used for FCoE over ixgbe based vlan
interface.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Yi Zou <yi.zou@intel.com>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ixgbe/ixgbe_dcb_nl.c

index 1c7265732900643ce27365c23212613c9d674c8d..116f12cc2c70bcf9e3ca14f3a6f7b605238a0e6c 100644 (file)
@@ -148,7 +148,10 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
                                IXGBE_FCRETA_SIZE;
                        netdev->features |= NETIF_F_FCOE_CRC;
                        netdev->features |= NETIF_F_FSO;
+                       netdev->vlan_features |= NETIF_F_FCOE_CRC;
+                       netdev->vlan_features |= NETIF_F_FSO;
                        netdev->fcoe_ddp_xid = IXGBE_FCOE_DDP_MAX - 1;
+                       netdev_features_change(netdev);
                }
 #endif /* IXGBE_FCOE */
                ixgbe_init_interrupt_scheme(adapter);
@@ -177,7 +180,10 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
                                adapter->ring_feature[RING_F_FCOE].indices = 0;
                                netdev->features &= ~NETIF_F_FCOE_CRC;
                                netdev->features &= ~NETIF_F_FSO;
+                               netdev->vlan_features &= ~NETIF_F_FCOE_CRC;
+                               netdev->vlan_features &= ~NETIF_F_FSO;
                                netdev->fcoe_ddp_xid = 0;
+                               netdev_features_change(netdev);
                        }
 #endif /* IXGBE_FCOE */
                        ixgbe_init_interrupt_scheme(adapter);