From c5b0fcd159d471f0422b303a2efa5ba6e8ddfcd6 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Thu, 22 Dec 2022 15:01:32 +0100 Subject: hsa: fix echo client workers initialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We were creating an additional worker not backed by any VPP threads, leading off-by-1 access in the session main workers vector. Also uses vec_elt_at_index() when accessing session main workers vector elements to catch those errors more easily. Type: fix Change-Id: I6059116b7b64ae6b26ad83c1fcf55df8522868ad Signed-off-by: Benoît Ganne --- src/vnet/session/session.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/vnet') diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index b8cc1c383c9..ab92295ea42 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -709,7 +709,7 @@ vnet_get_session_main () always_inline session_worker_t * session_main_get_worker (u32 thread_index) { - return &session_main.wrk[thread_index]; + return vec_elt_at_index (session_main.wrk, thread_index); } static inline session_worker_t * @@ -717,13 +717,13 @@ session_main_get_worker_if_valid (u32 thread_index) { if (thread_index > vec_len (session_main.wrk)) return 0; - return &session_main.wrk[thread_index]; + return session_main_get_worker (thread_index); } always_inline svm_msg_q_t * session_main_get_vpp_event_queue (u32 thread_index) { - return session_main.wrk[thread_index].vpp_event_queue; + return session_main_get_worker (thread_index)->vpp_event_queue; } always_inline u8 -- cgit 1.2.3-korg