mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-26 12:30:23 +09:00
UPSTREAM: igb: set max size RX buffer when store bad packet is enabled
commitbb5ed01cd2upstream. Increase the RX buffer size to 3K when the SBP bit is on. The size of the RX buffer determines the number of pages allocated which may not be sufficient for receive frames larger than the set MTU size. Bug: 306483516 Cc: stable@vger.kernel.org Fixes:89eaefb61d("igb: Support RX-ALL feature flag.") Reported-by: Manfred Rudigier <manfred.rudigier@omicronenergy.com> Signed-off-by: Radoslaw Tyl <radoslawx.tyl@intel.com> Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel) Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commitbe7353af5b) Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: I3f05b369cd9ac24643af3e37e2ce1d099c63bc02
This commit is contained in:
@@ -4737,6 +4737,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);
|
||||
@@ -4747,10 +4751,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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user