marvell: check return value of vlib_trace_buffer
[vpp.git] / src / plugins / marvell / pp2 / input.c
index 0c51d7d..202572d 100644 (file)
@@ -59,14 +59,16 @@ mrvl_pp2_input_trace (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0,
                      vlib_buffer_t * b0, uword * n_trace,
                      mrvl_pp2_if_t * ppif, struct pp2_ppio_desc *d)
 {
-  mrvl_pp2_input_trace_t *tr;
-  vlib_trace_buffer (vm, node, next0, b0,
-                    /* follow_chain */ 0);
-  vlib_set_trace_count (vm, node, --(*n_trace));
-  tr = vlib_add_trace (vm, node, b0, sizeof (*tr));
-  tr->next_index = next0;
-  tr->hw_if_index = ppif->hw_if_index;
-  clib_memcpy_fast (&tr->desc, d, sizeof (struct pp2_ppio_desc));
+  if (PREDICT_TRUE (
+       vlib_trace_buffer (vm, node, next0, b0, /* follow_chain */ 0)))
+    {
+      mrvl_pp2_input_trace_t *tr;
+      vlib_set_trace_count (vm, node, --(*n_trace));
+      tr = vlib_add_trace (vm, node, b0, sizeof (*tr));
+      tr->next_index = next0;
+      tr->hw_if_index = ppif->hw_if_index;
+      clib_memcpy_fast (&tr->desc, d, sizeof (struct pp2_ppio_desc));
+    }
 }
 
 static_always_inline u16