ixgbe: Add support for NETIF_F_FCOE_MTU to 82599 devices
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>
This commit is contained in:
parent
bb2af4f54f
commit
f34c5c8284
@ -148,8 +148,10 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
|
|||||||
IXGBE_FCRETA_SIZE;
|
IXGBE_FCRETA_SIZE;
|
||||||
netdev->features |= NETIF_F_FCOE_CRC;
|
netdev->features |= NETIF_F_FCOE_CRC;
|
||||||
netdev->features |= NETIF_F_FSO;
|
netdev->features |= NETIF_F_FSO;
|
||||||
|
netdev->features |= NETIF_F_FCOE_MTU;
|
||||||
netdev->vlan_features |= NETIF_F_FCOE_CRC;
|
netdev->vlan_features |= NETIF_F_FCOE_CRC;
|
||||||
netdev->vlan_features |= NETIF_F_FSO;
|
netdev->vlan_features |= NETIF_F_FSO;
|
||||||
|
netdev->vlan_features |= NETIF_F_FCOE_MTU;
|
||||||
netdev->fcoe_ddp_xid = IXGBE_FCOE_DDP_MAX - 1;
|
netdev->fcoe_ddp_xid = IXGBE_FCOE_DDP_MAX - 1;
|
||||||
netdev_features_change(netdev);
|
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;
|
adapter->ring_feature[RING_F_FCOE].indices = 0;
|
||||||
netdev->features &= ~NETIF_F_FCOE_CRC;
|
netdev->features &= ~NETIF_F_FCOE_CRC;
|
||||||
netdev->features &= ~NETIF_F_FSO;
|
netdev->features &= ~NETIF_F_FSO;
|
||||||
|
netdev->features &= ~NETIF_F_FCOE_MTU;
|
||||||
netdev->vlan_features &= ~NETIF_F_FCOE_CRC;
|
netdev->vlan_features &= ~NETIF_F_FCOE_CRC;
|
||||||
netdev->vlan_features &= ~NETIF_F_FSO;
|
netdev->vlan_features &= ~NETIF_F_FSO;
|
||||||
|
netdev->vlan_features &= ~NETIF_F_FCOE_MTU;
|
||||||
netdev->fcoe_ddp_xid = 0;
|
netdev->fcoe_ddp_xid = 0;
|
||||||
netdev_features_change(netdev);
|
netdev_features_change(netdev);
|
||||||
}
|
}
|
||||||
|
@ -2026,7 +2026,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
|
|||||||
else
|
else
|
||||||
hlreg0 |= IXGBE_HLREG0_JUMBOEN;
|
hlreg0 |= IXGBE_HLREG0_JUMBOEN;
|
||||||
#ifdef IXGBE_FCOE
|
#ifdef IXGBE_FCOE
|
||||||
if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED)
|
if (netdev->features & NETIF_F_FCOE_MTU)
|
||||||
hlreg0 |= IXGBE_HLREG0_JUMBOEN;
|
hlreg0 |= IXGBE_HLREG0_JUMBOEN;
|
||||||
#endif
|
#endif
|
||||||
IXGBE_WRITE_REG(hw, IXGBE_HLREG0, hlreg0);
|
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;
|
rx_ring->flags |= IXGBE_RING_RX_PS_ENABLED;
|
||||||
|
|
||||||
#ifdef IXGBE_FCOE
|
#ifdef IXGBE_FCOE
|
||||||
if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED) {
|
if (netdev->features & NETIF_F_FCOE_MTU) {
|
||||||
struct ixgbe_ring_feature *f;
|
struct ixgbe_ring_feature *f;
|
||||||
f = &adapter->ring_feature[RING_F_FCOE];
|
f = &adapter->ring_feature[RING_F_FCOE];
|
||||||
if ((i >= f->mask) && (i < f->mask + f->indices)) {
|
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
|
#ifdef IXGBE_FCOE
|
||||||
/* adjust max frame to be able to do baby jumbo for 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))
|
||||||
max_frame = IXGBE_FCOE_JUMBO_FRAME_SIZE;
|
max_frame = IXGBE_FCOE_JUMBO_FRAME_SIZE;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user