examples/l3fwd: fix unaligned memory access on x86

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: 64d3955de1 ("examples/l3fwd: fix ARM build")
Cc: stable@dpdk.org

Signed-off-by: Hariprasad Govindharajan <hariprasad.govindharajan@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Tested-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
This commit is contained in:
Hariprasad Govindharajan 2019-07-30 14:26:38 +01:00 committed by Thomas Monjalon
parent 1868b17b57
commit d7f936190e

View File

@ -287,7 +287,11 @@ 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.
*/
#if defined RTE_ARCH_X86
key.xmm[1] = _mm_loadu_si128(data1);
#else
key.xmm[1] = *(xmm_t *)data1;
#endif
/*
* Get part of 5 tuple: dst port and src port