|
@@ -4133,11 +4133,15 @@ void ixgbe_configure_rx_ring(struct ixgbe_adapter *adapter,
|
|
|
rxdctl &= ~0x3FFFFF;
|
|
|
rxdctl |= 0x080420;
|
|
|
#if (PAGE_SIZE < 8192)
|
|
|
- } else {
|
|
|
+ /* RXDCTL.RLPML does not work on 82599 */
|
|
|
+ } else if (hw->mac.type != ixgbe_mac_82599EB) {
|
|
|
rxdctl &= ~(IXGBE_RXDCTL_RLPMLMASK |
|
|
|
IXGBE_RXDCTL_RLPML_EN);
|
|
|
|
|
|
- /* Limit the maximum frame size so we don't overrun the skb */
|
|
|
+ /* Limit the maximum frame size so we don't overrun the skb.
|
|
|
+ * This can happen in SRIOV mode when the MTU of the VF is
|
|
|
+ * higher than the MTU of the PF.
|
|
|
+ */
|
|
|
if (ring_uses_build_skb(ring) &&
|
|
|
!test_bit(__IXGBE_RX_3K_BUFFER, &ring->state))
|
|
|
rxdctl |= IXGBE_MAX_2K_FRAME_BUILD_SKB |
|