When the number of threads results being more than 1, the spinlock
structure requires to be initialized otherwise subsequent calls to
the "lock" API (clib_spinlock_lock_if_init) would result in a void
operation.
Change-Id: Ia268c4687252e41962bb3f1217f0a849d8c40385
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
-sctp_timer_init_handler (u32 conn_index, u32 timer_id)
+sctp_expired_timers_cb (u32 conn_index, u32 timer_id)
{
sctp_connection_t *sctp_conn;
{
sctp_connection_t *sctp_conn;
/* *INDENT OFF* */
static sctp_timer_expiration_handler
* sctp_timer_expiration_handlers[SCTP_N_TIMERS] = {
/* *INDENT OFF* */
static sctp_timer_expiration_handler
* sctp_timer_expiration_handlers[SCTP_N_TIMERS] = {
- sctp_timer_init_handler
connection_index = expired_timers[i] & 0x0FFFFFFF;
timer_id = expired_timers[i] >> 28;
connection_index = expired_timers[i] & 0x0FFFFFFF;
timer_id = expired_timers[i] >> 28;
+ SCTP_DBG ("Expired timer ID: %u", timer_id);
+
/* Handle expiration */
(*sctp_timer_expiration_handlers[timer_id]) (connection_index,
timer_id);
/* Handle expiration */
(*sctp_timer_expiration_handlers[timer_id]) (connection_index,
timer_id);
+ clib_spinlock_init (&tm->half_open_lock);
}
vec_validate (tm->tx_frames[0], num_threads - 1);
}
vec_validate (tm->tx_frames[0], num_threads - 1);