Hi, > -----Original Message----- > From: dev <[email protected]> On Behalf Of hgovindh > Sent: Thursday, July 25, 2019 00:44 > To: Remy Horton <[email protected]>; Marko Kovacevic > <[email protected]>; Ori Kam <[email protected]>; Bruce > Richardson <[email protected]>; Pablo de Lara > <[email protected]>; Radu Nicolau <[email protected]>; > [email protected]; Tomasz Kantecki <[email protected]> > Cc: [email protected]; hgovindh <[email protected]>; > [email protected]; [email protected] > Subject: [dpdk-dev] [PATCH] examples/l3fwd: fix unaligned memory access > > Fix unaligned memory access when reading IPv6 header which leads to > segmentation fault by changing aligned memory read to unaligned memory > read. > > Bugzilla ID: 279 > Fixes: 64d3955de1de ("examples/l3fwd: fix ARM build") > Cc: [email protected] > Cc: [email protected] > Signed-off-by: hgovindh <[email protected]> > --- > examples/l3fwd/l3fwd_em.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c > index fa8f82be6..f0c443dae 100644 > --- a/examples/l3fwd/l3fwd_em.c > +++ b/examples/l3fwd/l3fwd_em.c > @@ -285,7 +285,7 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t > portid, void *lookup_struct) > * Get part of 5 tuple: dst IP address lower 96 bits > * and src IP address higher 32 bits. > */ > - key.xmm[1] = *(xmm_t *)data1; > + key.xmm[1] = _mm_loadu_si128((xmm_t *)data1);
The use of SSE intrinsics on general path will break build on other architectures. How about use em_mask_key() instead? > > /* > * Get part of 5 tuple: dst port and src port > -- > 2.22.0

