Message ID | 20240816152034.1453285-1-vinschen@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 8aba27c4a5020abdf60149239198297f88338a8d |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] igb: cope with large MAX_SKB_FRAGS | expand |
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Fri, 16 Aug 2024 17:20:34 +0200 you wrote: > From: Paolo Abeni <pabeni@redhat.com> > > Sabrina reports that the igb driver does not cope well with large > MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload > corruption on TX. > > An easy reproducer is to run ssh to connect to the machine. With > MAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails. This has > been reported originally in > https://bugzilla.redhat.com/show_bug.cgi?id=2265320 > > [...] Here is the summary with links: - [net,v2] igb: cope with large MAX_SKB_FRAGS https://git.kernel.org/netdev/net/c/8aba27c4a502 You are awesome, thank you!
> > Hello: > > This patch was applied to netdev/net.git (main) > by Jakub Kicinski <kuba@kernel.org>: > > On Fri, 16 Aug 2024 17:20:34 +0200 you wrote: > > From: Paolo Abeni <pabeni@redhat.com> > > > > Sabrina reports that the igb driver does not cope well with large > > MAX_SKB_FRAG values: setting MAX_SKB_FRAG to 45 causes payload > > corruption on TX. > > > > An easy reproducer is to run ssh to connect to the machine. With > > MAX_SKB_FRAGS=17 it works, with MAX_SKB_FRAGS=45 it fails. This has > > been reported originally in > > https://bugzilla.redhat.com/show_bug.cgi?id=2265320 Eh, I missed giving my reviewed-by tag. FWIW thanks for this v2! > > > > [...] > > Here is the summary with links: > - [net,v2] igb: cope with large MAX_SKB_FRAGS > https://git.kernel.org/netdev/net/c/8aba27c4a502 > > You are awesome, thank you! > -- > Deet-doot-dot, I am a bot. > https://korg.docs.kernel.org/patchwork/pwbot.html >
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 11be39f435f3..33a42b4c21e0 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -4808,6 +4808,7 @@ static void igb_set_rx_buffer_len(struct igb_adapter *adapter, #if (PAGE_SIZE < 8192) if (adapter->max_frame_size > IGB_MAX_FRAME_BUILD_SKB || + IGB_2K_TOO_SMALL_WITH_PADDING || rd32(E1000_RCTL) & E1000_RCTL_SBP) set_ring_uses_large_buffer(rx_ring); #endif