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

Reply via email to