Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[platform/kernel/linux-starfive.git] / drivers / net / ethernet / intel / igb / igb_main.c
index 9f63a10..1ab787e 100644 (file)
@@ -4814,6 +4814,10 @@ void igb_configure_rx_ring(struct igb_adapter *adapter,
 static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
                                  struct igb_ring *rx_ring)
 {
+#if (PAGE_SIZE < 8192)
+       struct e1000_hw *hw = &adapter->hw;
+#endif
+
        /* set build_skb and buffer size flags */
        clear_ring_build_skb_enabled(rx_ring);
        clear_ring_uses_large_buffer(rx_ring);
@@ -4824,10 +4828,9 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter,
        set_ring_build_skb_enabled(rx_ring);
 
 #if (PAGE_SIZE < 8192)
-       if (adapter->max_frame_size <= IGB_MAX_FRAME_BUILD_SKB)
-               return;
-
-       set_ring_uses_large_buffer(rx_ring);
+       if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB ||
+           rd32(E1000_RCTL) & E1000_RCTL_SBP)
+               set_ring_uses_large_buffer(rx_ring);
 #endif
 }