[PATCH] net/sxe2: fix 32-bit SSE build

Thomas Monjalon thomas at monjalon.net
Thu May 28 13:00:06 CEST 2026


28/05/2026 12:58, Thomas Monjalon:
> 28/05/2026 11:47, David Marchand:
> > On Thu, 28 May 2026 at 10:47, Thomas Monjalon <thomas at monjalon.net> wrote:
> > >
> > > Seen in OBS on i586 Debian:
> > >
> > > from ../drivers/net/sxe2/sxe2_txrx_vec_sse.c:5:
> > >         In function ‘_mm_loadu_si128’,
> > >                 inlined from ‘rte_memcpy’
> > >                 inlined from ‘sxe2_rx_pkts_refactor’
> > >                         at ../drivers/net/sxe2/sxe2_txrx_vec_common.h:233:2:
> > >         /usr/lib/gcc/i686-linux-gnu/12/include/emmintrin.h:703:10: error:
> > >         array subscript 8 is outside array bounds of ‘struct rte_mbuf *[32]’
> > >
> > > The important options to reproduce are "-m32 -O2 -march=corei7".
> > >
> > > In 32-bit build the pointer array done_pkts[32] is smaller:
> > >         32 * 4 = 128 bytes
> > > so an SSE access  would be outside the bound.
> > >
> > > The libc memcpy does not trigger such warning
> > > and is a good choice to copy an array of pointers.
> > >
> > > Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> > 
> > I reproduced and checked Debian 13 32 bits build with OBS.
> > Tested-by: David Marchand <david.marchand at redhat.com>
> 
> Thanks for testing.
> 
> I forgot this:
> 
> Fixes: 885647d31504 ("net/sxe2: fix 32-bit SSE build")

Of course I meant

Fixes: ac60f302cbef ("net/sxe2: add vectorized Rx and Tx")




More information about the dev mailing list