From e23472662cfac98649b3cbc7a2a3b80806ade54f Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 3 Feb 2017 09:30:37 -0800 Subject: 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 --- vnet/vnet/devices/virtio/vhost-user.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vnet/vnet/devices/virtio/vhost-user.c b/vnet/vnet/devices/virtio/vhost-user.c index 88f9ddecdbc..655df145979 100644 --- a/vnet/vnet/devices/virtio/vhost-user.c +++ b/vnet/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. -- cgit 1.2.3-korg