diff options
author | Florin Coras <fcoras@cisco.com> | 2022-03-29 17:49:37 -0700 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2022-10-31 15:24:18 +0000 |
commit | 009303dc06f8ecf4ed16c71e18c4e7fd40372eeb (patch) | |
tree | 3918bb5ded9abeefbf5e4a0bbb6e6bd05f6cfe0a /src/plugins | |
parent | d82c39e5ff91e858c53cc67fb30d29a1d476f31b (diff) |
tls: use safe pool reallocs
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia2c771cbf826526d2d06b6da022509ab02917350
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/tlsmbedtls/tls_mbedtls.c | 3 | ||||
-rw-r--r-- | src/plugins/tlsopenssl/tls_openssl.c | 5 | ||||
-rw-r--r-- | src/plugins/tlspicotls/tls_picotls.c | 4 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/plugins/tlsmbedtls/tls_mbedtls.c b/src/plugins/tlsmbedtls/tls_mbedtls.c index 8d6b7ac5498..a6b968eac14 100644 --- a/src/plugins/tlsmbedtls/tls_mbedtls.c +++ b/src/plugins/tlsmbedtls/tls_mbedtls.c @@ -74,7 +74,8 @@ mbedtls_ctx_alloc (void) mbedtls_main_t *tm = &mbedtls_main; mbedtls_ctx_t **ctx; - pool_get (tm->ctx_pool[thread_index], ctx); + pool_get_aligned_safe (tm->ctx_pool[thread_index], ctx, + CLIB_CACHE_LINE_BYTES); if (!(*ctx)) *ctx = clib_mem_alloc (sizeof (mbedtls_ctx_t)); diff --git a/src/plugins/tlsopenssl/tls_openssl.c b/src/plugins/tlsopenssl/tls_openssl.c index 1e35f9d8e19..5ccc492328a 100644 --- a/src/plugins/tlsopenssl/tls_openssl.c +++ b/src/plugins/tlsopenssl/tls_openssl.c @@ -40,7 +40,8 @@ openssl_ctx_alloc_w_thread (u32 thread_index) openssl_main_t *om = &openssl_main; openssl_ctx_t **ctx; - pool_get (om->ctx_pool[thread_index], ctx); + pool_get_aligned_safe (om->ctx_pool[thread_index], ctx, 0); + if (!(*ctx)) *ctx = clib_mem_alloc (sizeof (openssl_ctx_t)); @@ -99,7 +100,7 @@ openssl_ctx_attach (u32 thread_index, void *ctx_ptr) session_handle_t sh; openssl_ctx_t **oc; - pool_get (om->ctx_pool[thread_index], oc); + pool_get_aligned_safe (om->ctx_pool[thread_index], oc, 0); /* Free the old instance instead of looking for an empty spot */ if (*oc) clib_mem_free (*oc); diff --git a/src/plugins/tlspicotls/tls_picotls.c b/src/plugins/tlspicotls/tls_picotls.c index afb48f1c72e..393f2bf9940 100644 --- a/src/plugins/tlspicotls/tls_picotls.c +++ b/src/plugins/tlspicotls/tls_picotls.c @@ -27,11 +27,11 @@ static ptls_key_exchange_algorithm_t *default_key_exchange[] = { static u32 picotls_ctx_alloc (void) { - u8 thread_id = vlib_get_thread_index (); + u32 thread_id = vlib_get_thread_index (); picotls_main_t *pm = &picotls_main; picotls_ctx_t **ctx; - pool_get (pm->ctx_pool[thread_id], ctx); + pool_get_aligned_safe (pm->ctx_pool[thread_id], ctx, CLIB_CACHE_LINE_BYTES); if (!(*ctx)) *ctx = clib_mem_alloc (sizeof (picotls_ctx_t)); |