ixgbe: Add support for NETIF_F_FCOE_MTU to 82599 devices
authorYi Zou <yi.zou@intel.com>
Fri, 14 Aug 2009 12:42:17 +0000 (12:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Aug 2009 23:12:09 +0000 (16:12 -0700)
Enable netdev feature flag bit NETIF_F_FCOE_MTU for 82599 devices and enable
jumbo frame correspondingly when NETIF_F_FCOE_MTU is set.

Signed-off-by: Yi Zou <yi.zou@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
drivers/net/ixgbe/ixgbe_main.c

index 116f12cc2c70bcf9e3ca14f3a6f7b605238a0e6c..34bca45fbd1750d6ebe87297f7f57b792235c4e6 100644 (file)
@@ -148,8 +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->features |= NETIF_F_FCOE_MTU;
                        netdev->vlan_features |= NETIF_F_FCOE_CRC;
                        netdev->vlan_features |= NETIF_F_FSO;
+                       netdev->vlan_features |= NETIF_F_FCOE_MTU;
                        netdev->fcoe_ddp_xid = IXGBE_FCOE_DDP_MAX - 1;
                        netdev_features_change(netdev);
                }
@@ -180,8 +182,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->features &= ~NETIF_F_FCOE_MTU;
                                netdev->vlan_features &= ~NETIF_F_FCOE_CRC;
                                netdev->vlan_features &= ~NETIF_F_FSO;
+                               netdev->vlan_features &= ~NETIF_F_FCOE_MTU;
                                netdev->fcoe_ddp_xid = 0;
                                netdev_features_change(netdev);
                        }
index 8a8518dd69484ddde309564713fdcbb6d942a2f0..d69d277886e9a3e935859ef93acfe773275716d6 100644 (file)
@@ -2026,7 +2026,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
        else
                hlreg0 |= IXGBE_HLREG0_JUMBOEN;
 #ifdef IXGBE_FCOE
-       if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED)
+       if (netdev->features & NETIF_F_FCOE_MTU)
                hlreg0 |= IXGBE_HLREG0_JUMBOEN;
 #endif
        IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0);
@@ -2057,7 +2057,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
                        rx_ring->flags |= IXGBE_RING_RX_PS_ENABLED;
 
 #ifdef IXGBE_FCOE
-               if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED) {
+               if (netdev->features & NETIF_F_FCOE_MTU) {
                        struct ixgbe_ring_feature *f;
                        f = &adapter->ring_feature[RING_F_FCOE];
                        if ((i >= f->mask) && (i < f->mask + f->indices)) {
@@ -2609,7 +2609,7 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
 
 #ifdef IXGBE_FCOE
        /* adjust max frame to be able to do baby jumbo for FCoE */
-       if ((adapter->flags & IXGBE_FLAG_FCOE_ENABLED) &&
+       if ((netdev->features & NETIF_F_FCOE_MTU) &&
            (max_frame < IXGBE_FCOE_JUMBO_FRAME_SIZE))
                max_frame = IXGBE_FCOE_JUMBO_FRAME_SIZE;