diff mbox series

[iwl-net,v3] igb: set max size RX buffer when store bad packet is enabled

Message ID 20230822063938.195187-1-radoslawx.tyl@intel.com
State Accepted
Delegated to: Anthony Nguyen
Headers show
Series [iwl-net,v3] igb: set max size RX buffer when store bad packet is enabled | expand

Commit Message

Radoslaw Tyl Aug. 22, 2023, 6:39 a.m. UTC
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.

Fixes: 89eaefb61dc9 ("igb: Support RX-ALL feature flag.")
Signed-off-by: Radoslaw Tyl <radoslawx.tyl@intel.com>
---
v2: fix lkm build warning
v3: add new line
---
 drivers/net/ethernet/intel/igb/igb_main.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

Comments

Arland, ArpanaX Aug. 24, 2023, 5:01 p.m. UTC | #1
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Radoslaw Tyl
> Sent: Tuesday, August 22, 2023 12:10 PM
> To: intel-wired-lan@lists.osuosl.org
> Cc: Tyl, RadoslawX <radoslawx.tyl@intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-net v3] igb: set max size RX buffer when store bad packet is enabled
>
> 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.
>
> Fixes: 89eaefb61dc9 ("igb: Support RX-ALL feature flag.")
> Signed-off-by: Radoslaw Tyl <radoslawx.tyl@intel.com>
> ---
> v2: fix lkm build warning
> v3: add new line
> ---
>  drivers/net/ethernet/intel/igb/igb_main.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
>

Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 2293ae78f711..97526cdbb32b 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -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
 }