> -----Original Message----- > From: Linhaifeng [mailto:haifeng.lin at huawei.com] > Sent: Friday, March 20, 2015 2:36 PM > To: dev at dpdk.org > Cc: Ouyang, Changchun; Xie, Huawei > Subject: Re: [PATCH] lib/librte_vhost:fix can't send packet anymore after > mempool is full again > > > > On 2015/3/20 11:54, linhaifeng wrote: > > From: Linhaifeng <haifeng.lin at huawei.com> > > > > When failed to malloc buffer from mempool we just update last_used_idx > > but not used->idx so after many times vhost thought have handle all > > packets but virtio_net thought vhost have not handle all packets and > > will not update avail->idx. > > > > Signed-off-by: Linhaifeng <haifeng.lin at huawei.com> > > --- > > lib/librte_vhost/vhost_rxtx.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/lib/librte_vhost/vhost_rxtx.c > > b/lib/librte_vhost/vhost_rxtx.c index 535c7a1..93a8fff 100644 > > --- a/lib/librte_vhost/vhost_rxtx.c > > +++ b/lib/librte_vhost/vhost_rxtx.c > > @@ -609,7 +609,7 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, > uint16_t queue_id, > > if (unlikely(m == NULL)) { > > RTE_LOG(ERR, VHOST_DATA, > > "Failed to allocate memory for mbuf.\n"); > > - return entry_success; > > + goto finish; > > or use 'break' replace of 'goto' ?
Make sense, I can review if you make a v2 patch Thanks Changchun