From: Steven Date: Fri, 3 Feb 2017 17:30:37 +0000 (-0800) Subject: vhost-user: fix missing speculative enqueue unwind X-Git-Tag: v17.04-rc1~261 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=62411e7d82dc4562003651a53e723ea938be2ebd;p=vpp.git vhost-user: fix missing speculative enqueue unwind Running trex in a VM with a bad config, trex sent a bogus pack from the VM to the Virtual interface. It caused a crash. Change-Id: I64d0197b444265553ab4c24f21e6a962e89cb587 Signed-off-by: Steven --- diff --git a/src/vnet/devices/virtio/vhost-user.c b/src/vnet/devices/virtio/vhost-user.c index ac14286747a..9b8c18882ca 100644 --- a/src/vnet/devices/virtio/vhost-user.c +++ b/src/vnet/devices/virtio/vhost-user.c @@ -1677,6 +1677,10 @@ vhost_user_if_input (vlib_main_t * vm, if (PREDICT_FALSE (vum->cpus[cpu_index].rx_buffers_len == 0)) { + /* Cancel speculation */ + to_next--; + n_left_to_next++; + /* * Checking if there are some left buffers. * If not, just rewind the used buffers and stop.