aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lacp/ptx_machine.c
diff options
context:
space:
mode:
authorElias Rudberg <elias.rudberg@bahnhof.net>2020-05-07 14:29:21 +0200
committerElias Rudberg <elias.rudberg@bahnhof.net>2020-05-07 14:29:21 +0200
commit92e1b83a39458f98ff649883334b153f03af603b (patch)
treefe7a6accac254a3151081b5fccc27c7933d9e273 /src/plugins/lacp/ptx_machine.c
parenta1e03d4da71a2452c1e5da399d96c51f1b487cad (diff)
lacp: fix regarding vm arg for vlib_time_now calls
Use thread-specific vlib_main_t *vm pointers to avoid problems with different threads accessing the same vlib_main_t data structure. This avoids assertion failure when vlib_time_now() is called with a vm corresponding to a different thread. Type: fix Signed-off-by: Elias Rudberg <elias.rudberg@bahnhof.net> Change-Id: I359596ecff86e03d57aa8d2330f77bf9a913485f
Diffstat (limited to 'src/plugins/lacp/ptx_machine.c')
-rw-r--r--src/plugins/lacp/ptx_machine.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/plugins/lacp/ptx_machine.c b/src/plugins/lacp/ptx_machine.c
index bd4150fe39f..941fc58cbc4 100644
--- a/src/plugins/lacp/ptx_machine.c
+++ b/src/plugins/lacp/ptx_machine.c
@@ -88,7 +88,6 @@ lacp_ptx_action_slow_periodic (void *p1, void *p2)
vlib_main_t *vm = p1;
slave_if_t *sif = p2;
u8 timer_expired;
- lacp_main_t *lm = &lacp_main;
if (!(sif->partner.state & LACP_STATE_LACP_ACTIVITY) &&
!(sif->actor.state & LACP_STATE_LACP_ACTIVITY))
@@ -97,12 +96,12 @@ lacp_ptx_action_slow_periodic (void *p1, void *p2)
else
{
if (lacp_timer_is_running (sif->periodic_timer) &&
- lacp_timer_is_expired (lm->vlib_main, sif->periodic_timer))
+ lacp_timer_is_expired (vm, sif->periodic_timer))
timer_expired = 1;
else
timer_expired = 0;
- lacp_schedule_periodic_timer (lm->vlib_main, sif);
+ lacp_schedule_periodic_timer (vm, sif);
if (timer_expired || (sif->partner.state & LACP_STATE_LACP_TIMEOUT))
lacp_machine_dispatch (&lacp_ptx_machine, vm, sif,
@@ -118,7 +117,6 @@ lacp_ptx_action_fast_periodic (void *p1, void *p2)
vlib_main_t *vm = p1;
slave_if_t *sif = p2;
u8 timer_expired;
- lacp_main_t *lm = &lacp_main;
if (!(sif->partner.state & LACP_STATE_LACP_ACTIVITY) &&
!(sif->actor.state & LACP_STATE_LACP_ACTIVITY))
@@ -127,13 +125,12 @@ lacp_ptx_action_fast_periodic (void *p1, void *p2)
else
{
if (lacp_timer_is_running (sif->periodic_timer) &&
- lacp_timer_is_expired (lm->vlib_main, sif->periodic_timer))
+ lacp_timer_is_expired (vm, sif->periodic_timer))
timer_expired = 1;
else
timer_expired = 0;
- lacp_start_periodic_timer (lm->vlib_main, sif,
- LACP_FAST_PERIODIC_TIMER);
+ lacp_start_periodic_timer (vm, sif, LACP_FAST_PERIODIC_TIMER);
if (timer_expired)
lacp_machine_dispatch (&lacp_ptx_machine, vm, sif,