Skip to content

Commit

Permalink
igb: increase minimum rx buffer size to 1K
Browse files Browse the repository at this point in the history
This update increases the minimum rx buffer size to 1K.  The reason for this
change is to support SR-IOV and avoid any conflicts with the rings being able
to set their own MTU sizes.

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>
  • Loading branch information
Alexander Duyck authored and David S. Miller committed Oct 28, 2009
1 parent 094919a commit 7d95b71
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 24 deletions.
2 changes: 0 additions & 2 deletions drivers/net/igb/igb.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,6 @@ struct vf_data_storage {

/* Supported Rx Buffer Sizes */
#define IGB_RXBUFFER_128 128 /* Used for packet split */
#define IGB_RXBUFFER_256 256 /* Used for packet split */
#define IGB_RXBUFFER_512 512
#define IGB_RXBUFFER_1024 1024
#define IGB_RXBUFFER_2048 2048
#define IGB_RXBUFFER_16384 16384
Expand Down
25 changes: 3 additions & 22 deletions drivers/net/igb/igb_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2233,18 +2233,8 @@ static void igb_setup_rctl(struct igb_adapter *adapter)
rctl |= E1000_RCTL_LPE;

/* Setup buffer sizes */
switch (adapter->rx_buffer_len) {
case IGB_RXBUFFER_256:
rctl |= E1000_RCTL_SZ_256;
break;
case IGB_RXBUFFER_512:
rctl |= E1000_RCTL_SZ_512;
break;
default:
srrctl = ALIGN(adapter->rx_buffer_len, 1024)
>> E1000_SRRCTL_BSIZEPKT_SHIFT;
break;
}
srrctl = ALIGN(adapter->rx_buffer_len, 1024)
>> E1000_SRRCTL_BSIZEPKT_SHIFT;

/* 82575 and greater support packet-split where the protocol
* header is placed in skb->data and the packet data is
Expand Down Expand Up @@ -3755,11 +3745,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
* i.e. RXBUFFER_2048 --> size-4096 slab
*/

if (max_frame <= IGB_RXBUFFER_256)
adapter->rx_buffer_len = IGB_RXBUFFER_256;
else if (max_frame <= IGB_RXBUFFER_512)
adapter->rx_buffer_len = IGB_RXBUFFER_512;
else if (max_frame <= IGB_RXBUFFER_1024)
if (max_frame <= IGB_RXBUFFER_1024)
adapter->rx_buffer_len = IGB_RXBUFFER_1024;
else if (max_frame <= IGB_RXBUFFER_2048)
adapter->rx_buffer_len = IGB_RXBUFFER_2048;
Expand All @@ -3770,11 +3756,6 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
adapter->rx_buffer_len = PAGE_SIZE / 2;
#endif

/* if sr-iov is enabled we need to force buffer size to 1K or larger */
if (adapter->vfs_allocated_count &&
(adapter->rx_buffer_len < IGB_RXBUFFER_1024))
adapter->rx_buffer_len = IGB_RXBUFFER_1024;

/* adjust allocation if LPE protects us, and we aren't using SBP */
if ((max_frame == ETH_FRAME_LEN + ETH_FCS_LEN) ||
(max_frame == MAXIMUM_ETHERNET_VLAN_SIZE))
Expand Down

0 comments on commit 7d95b71

Please sign in to comment.