From 7c78130f70c94f46fd2ef03976749de69fa2be8d Mon Sep 17 00:00:00 2001 From: John Safranek Date: Wed, 6 Nov 2019 15:56:27 -0800 Subject: [PATCH 1/3] Sync OCTEON fix The preprocessor selection for the WOLFSSL_GLOBAL macro for OCTEON wasn't getting selected. --- wolfssl/wolfcrypt/wc_port.h | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index 3a1dd2b8b..12ed7b356 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -721,7 +721,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); will use dynamic buffer if not big enough */ #endif -#ifdef HAVE_CAVIUM_OCTEON +#ifdef HAVE_CAVIUM_OCTEON_SYNC /* By default, the OCTEON's global variables are all thread local. This * tag allows them to be shared between threads. */ #include "cvmx-platform.h" @@ -730,17 +730,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define WOLFSSL_GLOBAL #endif - -#ifdef HAVE_NITROX_OCTEON - /* By default, the OCTEON's global variables are all thread local. This - * tag allows them to be shared between threads. */ - #include "cvmx-platform.h" - #define WOLFSSL_GLOBAL CVMX_SHARED -#else - #define WOLFSSL_GLOBAL -#endif - - #ifdef __cplusplus } /* extern "C" */ #endif From 2ace532e4575ecbe89339e124fc172dddf120cae Mon Sep 17 00:00:00 2001 From: John Safranek Date: Thu, 7 Nov 2019 11:50:02 -0800 Subject: [PATCH 2/3] Sync OCTEON fix 1. The sniffer's global device ID wasn't tagged as global. 2. Make sure the sniffer's global device ID is used. --- src/sniffer.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/sniffer.c b/src/sniffer.c index 835f06cdd..78362356c 100644 --- a/src/sniffer.c +++ b/src/sniffer.c @@ -487,7 +487,7 @@ static void UpdateMissedDataSessions(void) #ifdef WOLF_CRYPTO_CB - static int CryptoDeviceId = INVALID_DEVID; + static WOLFSSL_GLOBAL int CryptoDeviceId = INVALID_DEVID; #endif @@ -1434,7 +1434,7 @@ static int LoadKeyFile(byte** keyBuf, word32* keyBufSz, #ifdef WOLFSSL_SNIFFER_WATCH -static int CreateWatchSnifferServer(char* error, int devId) +static int CreateWatchSnifferServer(char* error) { SnifferServer* sniffer; @@ -1453,7 +1453,7 @@ static int CreateWatchSnifferServer(char* error, int devId) } #ifdef WOLF_CRYPTO_CB if (CryptoDeviceId != INVALID_DEVID) - wolfSSL_CTX_SetDevId(sniffer->ctx, devId); + wolfSSL_CTX_SetDevId(sniffer->ctx, CryptoDeviceId); #endif ServerList = sniffer; @@ -3753,7 +3753,7 @@ static int CheckPreRecord(IpInfo* ipInfo, TcpInfo* tcpInfo, word32 i, offset, headerSz, qty, remainder; Trace(CHAIN_INPUT_STR); - headerSz = (word64)*sslFrame - (word64)chain[0].iov_base; + headerSz = (word32)*sslFrame - (word32)chain[0].iov_base; remainder = *sslBytes; if ( (*sslBytes + length) > ssl->buffers.inputBuffer.bufferSize) { @@ -4506,15 +4506,16 @@ int ssl_ReadResetStatistics(SSLStats* stats) int ssl_SetWatchKeyCallback_ex(SSLWatchCb cb, int devId, char* error) { + (void)devId; WatchCb = cb; - return CreateWatchSnifferServer(error, devId); + return CreateWatchSnifferServer(error); } int ssl_SetWatchKeyCallback(SSLWatchCb cb, char* error) { WatchCb = cb; - return CreateWatchSnifferServer(error, INVALID_DEVID); + return CreateWatchSnifferServer(error); } From 604219f2fc9393701679a636891c63981c73c854 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Thu, 14 Nov 2019 14:15:21 -0800 Subject: [PATCH 3/3] Sync OCTEON fix 1. For OCTEON builds, leave out the "-DCVMX_BUILD_FOR_LINUX_HOST" option from CFLAGS by default so it makes standalone host builds. 2. Add a check of the variable OCTEON_HOST for linux to add back in the "-DCVMX_BUILD_FOR_LINUX_HOST" to CFLAGS. --- configure.ac | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dc5ed6e69..9abd4c495 100644 --- a/configure.ac +++ b/configure.ac @@ -3903,6 +3903,7 @@ AC_ARG_WITH([cavium-v], # Cavium Octeon OCTEON_ROOT="" : ${OCTEON_OBJ="obj-octeon2"} +: ${OCTEON_HOST="standalone"} AC_ARG_WITH([octeon-sync], [AS_HELP_STRING([--with-octeon-sync=PATH],[PATH to Cavium Octeon SDK dir (sync)])], @@ -3917,8 +3918,9 @@ AC_ARG_WITH([octeon-sync], fi AM_CFLAGS="$AM_CFLAGS -DHAVE_CAVIUM_OCTEON_SYNC" - AM_CFLAGS="$AM_CFLAGS -DOCTEON_MODEL=$OCTEON_MODEL -DCVMX_BUILD_FOR_LINUX_HOST" + AM_CFLAGS="$AM_CFLAGS -DOCTEON_MODEL=$OCTEON_MODEL" AM_CFLAGS="$AM_CFLAGS -I$OCTEON_ROOT/executive" + AS_CASE([$OCTEON_HOST],['linux'],[AM_CFLAGS="$AM_CFLAGS -DCVMX_BUILD_FOR_LINUX_HOST"]) #-I$OCTEON_ROOT/target/include AM_LDFLAGS="$AM_LDFLAGS -lrt -Xlinker -T -Xlinker $OCTEON_ROOT/executive/cvmx-shared-linux.ld"