forked from luck/tmp_suning_uos_patched
ixgbe: Fix usage of second flags bitmap when using LRO/RSC
A second set of feature flag bits was added, and the hardware RSC engine flags were moved there. However, the code itself didn't make the move completely to use the new bitmap. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Acked-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@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
8f9a71673d
commit
0c19d6af92
@ -1999,13 +1999,13 @@ static int ixgbe_set_flags(struct net_device *netdev, u32 data)
|
|||||||
|
|
||||||
ethtool_op_set_flags(netdev, data);
|
ethtool_op_set_flags(netdev, data);
|
||||||
|
|
||||||
if (!(adapter->flags & IXGBE_FLAG2_RSC_CAPABLE))
|
if (!(adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* if state changes we need to update adapter->flags and reset */
|
/* if state changes we need to update adapter->flags and reset */
|
||||||
if ((!!(data & ETH_FLAG_LRO)) !=
|
if ((!!(data & ETH_FLAG_LRO)) !=
|
||||||
(!!(adapter->flags & IXGBE_FLAG2_RSC_ENABLED))) {
|
(!!(adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED))) {
|
||||||
adapter->flags ^= IXGBE_FLAG2_RSC_ENABLED;
|
adapter->flags2 ^= IXGBE_FLAG2_RSC_ENABLED;
|
||||||
if (netif_running(netdev))
|
if (netif_running(netdev))
|
||||||
ixgbe_reinit_locked(adapter);
|
ixgbe_reinit_locked(adapter);
|
||||||
else
|
else
|
||||||
|
@ -780,7 +780,7 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
|
|||||||
prefetch(next_rxd);
|
prefetch(next_rxd);
|
||||||
cleaned_count++;
|
cleaned_count++;
|
||||||
|
|
||||||
if (adapter->flags & IXGBE_FLAG2_RSC_CAPABLE)
|
if (adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE)
|
||||||
rsc_count = ixgbe_get_rsc_count(rx_desc);
|
rsc_count = ixgbe_get_rsc_count(rx_desc);
|
||||||
|
|
||||||
if (rsc_count) {
|
if (rsc_count) {
|
||||||
@ -2036,7 +2036,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
|
|||||||
IXGBE_WRITE_REG(hw, IXGBE_PSRTYPE(0), psrtype);
|
IXGBE_WRITE_REG(hw, IXGBE_PSRTYPE(0), psrtype);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!(adapter->flags & IXGBE_FLAG2_RSC_ENABLED) &&
|
if (!(adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) &&
|
||||||
(netdev->mtu <= ETH_DATA_LEN))
|
(netdev->mtu <= ETH_DATA_LEN))
|
||||||
rx_buf_len = MAXIMUM_ETHERNET_VLAN_SIZE;
|
rx_buf_len = MAXIMUM_ETHERNET_VLAN_SIZE;
|
||||||
else
|
else
|
||||||
@ -2165,7 +2165,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
|
|||||||
IXGBE_WRITE_REG(hw, IXGBE_RDRXCTL, rdrxctl);
|
IXGBE_WRITE_REG(hw, IXGBE_RDRXCTL, rdrxctl);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adapter->flags & IXGBE_FLAG2_RSC_ENABLED) {
|
if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED) {
|
||||||
/* Enable 82599 HW-RSC */
|
/* Enable 82599 HW-RSC */
|
||||||
for (i = 0; i < adapter->num_rx_queues; i++) {
|
for (i = 0; i < adapter->num_rx_queues; i++) {
|
||||||
j = adapter->rx_ring[i].reg_idx;
|
j = adapter->rx_ring[i].reg_idx;
|
||||||
@ -3812,8 +3812,8 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter)
|
|||||||
adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82598;
|
adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82598;
|
||||||
} else if (hw->mac.type == ixgbe_mac_82599EB) {
|
} else if (hw->mac.type == ixgbe_mac_82599EB) {
|
||||||
adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82599;
|
adapter->max_msix_q_vectors = MAX_MSIX_Q_VECTORS_82599;
|
||||||
adapter->flags |= IXGBE_FLAG2_RSC_CAPABLE;
|
adapter->flags2 |= IXGBE_FLAG2_RSC_CAPABLE;
|
||||||
adapter->flags |= IXGBE_FLAG2_RSC_ENABLED;
|
adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED;
|
||||||
adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE;
|
adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE;
|
||||||
adapter->ring_feature[RING_F_FDIR].indices =
|
adapter->ring_feature[RING_F_FDIR].indices =
|
||||||
IXGBE_MAX_FDIR_INDICES;
|
IXGBE_MAX_FDIR_INDICES;
|
||||||
@ -5618,7 +5618,7 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
|
|||||||
if (pci_using_dac)
|
if (pci_using_dac)
|
||||||
netdev->features |= NETIF_F_HIGHDMA;
|
netdev->features |= NETIF_F_HIGHDMA;
|
||||||
|
|
||||||
if (adapter->flags & IXGBE_FLAG2_RSC_ENABLED)
|
if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED)
|
||||||
netdev->features |= NETIF_F_LRO;
|
netdev->features |= NETIF_F_LRO;
|
||||||
|
|
||||||
/* make sure the EEPROM is good */
|
/* make sure the EEPROM is good */
|
||||||
|
Loading…
Reference in New Issue
Block a user