From 62411e7d82dc4562003651a53e723ea938be2ebd Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 3 Feb 2017 09:30:37 -0800 Subject: [PATCH] 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 --- src/vnet/devices/virtio/vhost-user.c | 4 ++++ 1 file changed, 4 insertions(+) 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. -- 2.16.6