Due to recent changes to the default device socket ID, before being used as an index for session mempool list, the socket ID should be set to 0 if unknown (-1).
Fixes: 7dcd73e37965 ("drivers/bus: set device NUMA node to unknown by default") Fixes: 64c469b9e7d8 ("app/crypto-perf: check range of socket id") Cc: bruce.richard...@intel.com Cc: olivier.m...@6wind.com Cc: sta...@dpdk.org Signed-off-by: Ciara Power <ciara.po...@intel.com> Acked-by: Kai Ji <kai...@intel.com> --- v2: check if socket ID equals SOCKET_ID_ANY --- app/test-crypto-perf/main.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c index af5bd0d23b..bc1f0f9659 100644 --- a/app/test-crypto-perf/main.c +++ b/app/test-crypto-perf/main.c @@ -193,11 +193,10 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs) #endif struct rte_cryptodev_info cdev_info; - uint8_t socket_id = rte_cryptodev_socket_id(cdev_id); - /* range check the socket_id - negative values become big - * positive ones due to use of unsigned value - */ - if (socket_id >= RTE_MAX_NUMA_NODES) + int socket_id = rte_cryptodev_socket_id(cdev_id); + + /* Use the first socket if SOCKET_ID_ANY is returned. */ + if (socket_id == SOCKET_ID_ANY) socket_id = 0; rte_cryptodev_info_get(cdev_id, &cdev_info); @@ -650,7 +649,11 @@ main(int argc, char **argv) cdev_id = enabled_cdevs[cdev_index]; - uint8_t socket_id = rte_cryptodev_socket_id(cdev_id); + int socket_id = rte_cryptodev_socket_id(cdev_id); + + /* Use the first socket if SOCKET_ID_ANY is returned. */ + if (socket_id == SOCKET_ID_ANY) + socket_id = 0; ctx[i] = cperf_testmap[opts.test].constructor( session_pool_socket[socket_id].sess_mp, -- 2.25.1