igb: update handling of RCTL for smaller buffer sizes
As we begin to move into virtualization the use of a global value for buffer sizes becomes undesirable. This change makes it so only 256 and 512 byte buffers require use of the RCTL register. Signed-off-by: Alexander Duyck <alexander.h.duyck@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:
committed by
David S. Miller
parent
e97fd7c6d5
commit
b4557be23d
@@ -1801,7 +1801,9 @@ static void igb_setup_rctl(struct igb_adapter *adapter)
|
|||||||
*/
|
*/
|
||||||
rctl &= ~(E1000_RCTL_SBP | E1000_RCTL_LPE | E1000_RCTL_SZ_256);
|
rctl &= ~(E1000_RCTL_SBP | E1000_RCTL_LPE | E1000_RCTL_SZ_256);
|
||||||
|
|
||||||
if (adapter->netdev->mtu <= ETH_DATA_LEN) {
|
if (adapter->netdev->mtu > ETH_DATA_LEN)
|
||||||
|
rctl |= E1000_RCTL_LPE;
|
||||||
|
|
||||||
/* Setup buffer sizes */
|
/* Setup buffer sizes */
|
||||||
switch (adapter->rx_buffer_len) {
|
switch (adapter->rx_buffer_len) {
|
||||||
case IGB_RXBUFFER_256:
|
case IGB_RXBUFFER_256:
|
||||||
@@ -1810,17 +1812,11 @@ static void igb_setup_rctl(struct igb_adapter *adapter)
|
|||||||
case IGB_RXBUFFER_512:
|
case IGB_RXBUFFER_512:
|
||||||
rctl |= E1000_RCTL_SZ_512;
|
rctl |= E1000_RCTL_SZ_512;
|
||||||
break;
|
break;
|
||||||
case IGB_RXBUFFER_1024:
|
|
||||||
rctl |= E1000_RCTL_SZ_1024;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
rctl |= E1000_RCTL_SZ_2048;
|
srrctl = ALIGN(adapter->rx_buffer_len, 1024)
|
||||||
|
>> E1000_SRRCTL_BSIZEPKT_SHIFT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
rctl |= E1000_RCTL_LPE;
|
|
||||||
srrctl = adapter->rx_buffer_len >> E1000_SRRCTL_BSIZEPKT_SHIFT;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 82575 and greater support packet-split where the protocol
|
/* 82575 and greater support packet-split where the protocol
|
||||||
* header is placed in skb->data and the packet data is
|
* header is placed in skb->data and the packet data is
|
||||||
|
Reference in New Issue
Block a user