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:   Wed, 2 Feb 2022 19:34:33 +0000
From:   "Jankowski, Konrad0" <konrad0.jankowski@...el.com>
To:     Samuel Mendoza-Jonas <samjonas@...zon.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC:     "Brandeburg, Jesse" <jesse.brandeburg@...el.com>,
        "David S . Miller" <davem@...emloft.net>,
        "Nguyen, Anthony L" <anthony.l.nguyen@...el.com>,
        Jakub Kicinski <kuba@...nel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH net] ixgbevf: Require large buffers for build_skb on
 82599VF



> -----Original Message-----
> From: Samuel Mendoza-Jonas <samjonas@...zon.com>
> Sent: Thursday, January 13, 2022 12:33 AM
> To: netdev@...r.kernel.org; intel-wired-lan@...ts.osuosl.org
> Cc: Samuel Mendoza-Jonas <samjonas@...zon.com>; Brandeburg, Jesse
> <jesse.brandeburg@...el.com>; David S . Miller <davem@...emloft.net>;
> Nguyen, Anthony L <anthony.l.nguyen@...el.com>; Jakub Kicinski
> <kuba@...nel.org>; linux-kernel@...r.kernel.org
> Subject: [PATCH net] ixgbevf: Require large buffers for build_skb on 82599VF
> 
> From 4.17 onwards the ixgbevf driver uses build_skb() to build an skb around
> new data in the page buffer shared with the ixgbe PF.
> This uses either a 2K or 3K buffer, and offsets the DMA mapping by
> NET_SKB_PAD + NET_IP_ALIGN. When using a smaller buffer RXDCTL is set
> to ensure the PF does not write a full 2K bytes into the buffer, which is
> actually 2K minus the offset.
> 
> However on the 82599 virtual function, the RXDCTL mechanism is not
> available. The driver attempts to work around this by using the SET_LPE
> mailbox method to lower the maximm frame size, but the ixgbe PF driver
> ignores this in order to keep the PF and all VFs in sync[0].
> 
> This means the PF will write up to the full 2K set in SRRCTL, causing it to write
> NET_SKB_PAD + NET_IP_ALIGN bytes past the end of the buffer.
> With 4K pages split into two buffers, this means it either writes
> NET_SKB_PAD + NET_IP_ALIGN bytes past the first buffer (and into the
> second), or NET_SKB_PAD + NET_IP_ALIGN bytes past the end of the DMA
> mapping.
> 
> Avoid this by only enabling build_skb when using "large" buffers (3K).
> These are placed in each half of an order-1 page, preventing the PF from
> writing past the end of the mapping.
> 
> [0]: Technically it only ever raises the max frame size, see
> ixgbe_set_vf_lpe() in ixgbe_sriov.c
> 
> Signed-off-by: Samuel Mendoza-Jonas <samjonas@...zon.com>
> ---
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> index 0015fcf1df2b..0f293acd17e8 100644
> --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c

Tested-by: Konrad Jankowski <konrad0.jankowski@...el.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ