Skip to content

Commit

Permalink
Fix a segment fault error for DPDK 17.02
Browse files Browse the repository at this point in the history
I found a segment fault error when I use DPDK 17.02 branch, here is
segment fault information:

Program terminated with signal SIGSEGV, Segmentation fault.
702 __builtin_ia32_storedqu ((char *)__P, (__v16qi)__B);
(gdb) bt
    at build/production/vrouter/dpdk/x86_64-native-linuxapp-gcc/include/rte_memcpy.h:820
    at build/production/vrouter/dpdk/x86_64-native-linuxapp-gcc/include/rte_memcpy.h:896
    at vrouter/dpdk/vr_dpdk_host.c:793
    at vrouter/dp-core/vr_proto_ip.c:373
(gdb)

We encountered it in DPDK 17.11 branch, the issue is rte_mbuf can't be freed
if it is copied or cloned from another rtm_mbuf with IND_ATTACHED_MBUF flag,
it will result in very weird issues.

Change-Id: Iae6d229488225a97ef2f96c52db1dbcaaa32b51a
Closes-Bug: #1774903
Signed-off-by: Yi Yang <yi.y.yang@intel.com>
(cherry picked from commit e866729)
  • Loading branch information
yi-y-yang authored and Jeya ganesh babu committed Jul 24, 2018
1 parent 27330b8 commit aeace07
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion dpdk/vr_dpdk_host.c
Expand Up @@ -246,7 +246,7 @@ dpdk_pktmbuf_data_copy(struct rte_mbuf *dst, struct rte_mbuf *src)
dst->data_off = src->data_off;
dst->port = src->port;
dst->ol_flags = src->ol_flags;
#if (RTE_VERSION >= RTE_VERSION_NUM(17, 11, 0, 0))
#ifdef IND_ATTACHED_MBUF
dst->ol_flags &= (~IND_ATTACHED_MBUF);
#endif
dst->packet_type = src->packet_type;
Expand Down

0 comments on commit aeace07

Please sign in to comment.