VPP-1450: binary api call for dumping SPD to interface registration
[vpp.git] / src / vlib / node_funcs.h
index 577e013..3304d0f 100644 (file)
@@ -237,7 +237,7 @@ always_inline vlib_frame_t *
 vlib_get_frame (vlib_main_t * vm, uword frame_index)
 {
   vlib_frame_t *f = vlib_get_frame_no_check (vm, frame_index);
-  ASSERT (f->flags & VLIB_FRAME_IS_ALLOCATED);
+  ASSERT (f->frame_flags & VLIB_FRAME_IS_ALLOCATED);
   return f;
 }
 
@@ -818,7 +818,15 @@ vlib_process_signal_event_helper (vlib_node_main_t * nm,
     {
       /* Waiting for both event and clock? */
       if (p_flags & VLIB_PROCESS_IS_SUSPENDED_WAITING_FOR_EVENT)
-       delete_from_wheel = 1;
+       {
+         if (!TW (tw_timer_handle_is_free)
+             ((TWT (tw_timer_wheel) *) nm->timing_wheel,
+              p->stop_timer_handle))
+           delete_from_wheel = 1;
+         else
+           /* timer just popped so process should already be on the list */
+           add_to_pending = 0;
+       }
       else
        /* Waiting only for clock.  Event will be queue and may be
           handled when timer expires. */
@@ -1007,7 +1015,7 @@ vlib_signal_one_time_waiting_process (vlib_main_t * vm,
 {
   vlib_process_signal_one_time_event (vm, p->node_index, p->one_time_event,
                                      /* data */ ~0);
-  memset (p, ~0, sizeof (p[0]));
+  clib_memset (p, ~0, sizeof (p[0]));
 }
 
 always_inline void