aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/devices/virtio/vhost-user.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/vnet/devices/virtio/vhost-user.c b/src/vnet/devices/virtio/vhost-user.c
index 64d55b65..451ae434 100644
--- a/src/vnet/devices/virtio/vhost-user.c
+++ b/src/vnet/devices/virtio/vhost-user.c
@@ -1557,6 +1557,7 @@ vhost_user_input_rewind_buffers (vlib_main_t * vm,
b_current->current_length = 0;
b_current->flags = 0;
}
+ cpu->rx_buffers_len++;
}
static u32
@@ -1735,7 +1736,8 @@ vhost_user_if_input (vlib_main_t * vm,
desc_current = 0;
if (PREDICT_FALSE (desc_table == 0))
{
- //FIXME: Handle error by shutdown the queue
+ vlib_error_count (vm, node->node_index,
+ VHOST_USER_INPUT_FUNC_ERROR_MMAP_FAIL, 1);
goto out;
}
}
@@ -1868,13 +1870,8 @@ vhost_user_if_input (vlib_main_t * vm,
(vhost_user_input_copy (vui, vum->cpus[thread_index].copy,
copy_len, &map_hint)))
{
- clib_warning
- ("Memory mapping error on interface hw_if_index=%d "
- "(Shutting down - Switch interface down and up to restart)",
- vui->hw_if_index);
- vui->admin_up = 0;
- copy_len = 0;
- break;
+ vlib_error_count (vm, node->node_index,
+ VHOST_USER_INPUT_FUNC_ERROR_MMAP_FAIL, 1);
}
copy_len = 0;
@@ -1893,10 +1890,8 @@ vhost_user_if_input (vlib_main_t * vm,
(vhost_user_input_copy (vui, vum->cpus[thread_index].copy,
copy_len, &map_hint)))
{
- clib_warning ("Memory mapping error on interface hw_if_index=%d "
- "(Shutting down - Switch interface down and up to restart)",
- vui->hw_if_index);
- vui->admin_up = 0;
+ vlib_error_count (vm, node->node_index,
+ VHOST_USER_INPUT_FUNC_ERROR_MMAP_FAIL, 1);
}
/* give buffers back to driver */
@@ -2324,10 +2319,8 @@ done:
(vhost_user_tx_copy (vui, vum->cpus[thread_index].copy,
copy_len, &map_hint)))
{
- clib_warning ("Memory mapping error on interface hw_if_index=%d "
- "(Shutting down - Switch interface down and up to restart)",
- vui->hw_if_index);
- vui->admin_up = 0;
+ vlib_error_count (vm, node->node_index,
+ VHOST_USER_TX_FUNC_ERROR_MMAP_FAIL, 1);
}
CLIB_MEMORY_BARRIER ();