Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2
dpdk
0027-port-fix-crash-for-ring-writer-nodrop.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0027-port-fix-crash-for-ring-writer-nodrop.patch of Package dpdk
From fa11a8a7251e14eca0a4190128732386f13551bd Mon Sep 17 00:00:00 2001 From: Jasvinder Singh <jasvinder.singh@intel.com> Date: Wed, 2 Mar 2016 21:19:58 +0000 Subject: [PATCH] port: fix crash for ring writer nodrop Error log: [APP] Initializing PIPELINE0 ... pipeline> [APP] Initializing PIPELINE1 ... [PIPELINE1] Pass-through [APP] Initializing PIPELINE2 ... [PIPELINE2] Pass-through Segmentation fault (core dumped) Fixes: 5f4cd47309d6 ("port: add ring writer nodrop") Fixes: d58f69c54172 ("port: add ring multi reader or writer") Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com> --- lib/librte_port/rte_port_ring.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/librte_port/rte_port_ring.c b/lib/librte_port/rte_port_ring.c index 755dfc1..b847fea 100644 --- a/lib/librte_port/rte_port_ring.c +++ b/lib/librte_port/rte_port_ring.c @@ -520,16 +520,20 @@ send_burst_nodrop(struct rte_port_ring_writer_nodrop *p) p->tx_buf_count); /* We sent all the packets in a first try */ - if (nb_tx >= p->tx_buf_count) + if (nb_tx >= p->tx_buf_count) { + p->tx_buf_count = 0; return; + } for (i = 0; i < p->n_retries; i++) { nb_tx += rte_ring_sp_enqueue_burst(p->ring, (void **) (p->tx_buf + nb_tx), p->tx_buf_count - nb_tx); /* We sent all the packets in more than one try */ - if (nb_tx >= p->tx_buf_count) + if (nb_tx >= p->tx_buf_count) { + p->tx_buf_count = 0; return; + } } /* We didn't send the packets in maximum allowed attempts */ @@ -549,16 +553,20 @@ send_burst_mp_nodrop(struct rte_port_ring_writer_nodrop *p) p->tx_buf_count); /* We sent all the packets in a first try */ - if (nb_tx >= p->tx_buf_count) + if (nb_tx >= p->tx_buf_count) { + p->tx_buf_count = 0; return; + } for (i = 0; i < p->n_retries; i++) { nb_tx += rte_ring_mp_enqueue_burst(p->ring, (void **) (p->tx_buf + nb_tx), p->tx_buf_count - nb_tx); /* We sent all the packets in more than one try */ - if (nb_tx >= p->tx_buf_count) + if (nb_tx >= p->tx_buf_count) { + p->tx_buf_count = 0; return; + } } /* We didn't send the packets in maximum allowed attempts */ -- 2.6.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor