lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Mon, 28 Aug 2023 10:00:15 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Tony Nguyen' <anthony.l.nguyen@...el.com>, "davem@...emloft.net"
	<davem@...emloft.net>, "kuba@...nel.org" <kuba@...nel.org>,
	"pabeni@...hat.com" <pabeni@...hat.com>, "edumazet@...gle.com"
	<edumazet@...gle.com>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: Radoslaw Tyl <radoslawx.tyl@...el.com>, "greearb@...delatech.com"
	<greearb@...delatech.com>, "jesse.brandeburg@...el.com"
	<jesse.brandeburg@...el.com>, "stable@...r.kernel.org"
	<stable@...r.kernel.org>, Manfred Rudigier
	<manfred.rudigier@...cronenergy.com>, Arpana Arland
	<arpanax.arland@...el.com>
Subject: RE: [PATCH net] igb: set max size RX buffer when store bad packet is
 enabled

From: Tony Nguyen
> Sent: 24 August 2023 21:46
> 
> From: Radoslaw Tyl <radoslawx.tyl@...el.com>
> 
> 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.

How much does that actually help?
In principle there is no limit to the length of an ethernet frame.
So the code has to handle overlong packets whatever the receive
buffer size is set to.

Modern ethernet hardware probably has configurable rx frame length
limits - but with old hardware the drivers had to handle frames
longer than 'buffer_size * ring_size'.

	David

> 
> Cc: stable@...r.kernel.org
> Fixes: 89eaefb61dc9 ("igb: Support RX-ALL feature flag.")
> Reported-by: Manfred Rudigier <manfred.rudigier@...cronenergy.com>
> Signed-off-by: Radoslaw Tyl <radoslawx.tyl@...el.com>
> Tested-by: Arpana Arland <arpanax.arland@...el.com> (A Contingent worker at Intel)
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@...el.com>
> ---
>  drivers/net/ethernet/intel/igb/igb_main.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index 9a2561409b06..08e3df37089f 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
>  }
> 
> --
> 2.38.1
> 

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ