18/10/2021 17:21, Akhil Goyal: > > This set of patches introduces a new framework, making all common code of > > SW crypto PMD implementations built on top of intel-ipsec-mb library > > sharable. This helps to reduce future effort on the code maintenance and > > future updates. It also moves all SW PMD implementation specific details > > into single files located in the crypto/ipsec_mb folder. > > A CHACHA20_POLY1305 SW PMD is added based on this framework. > > > > Multi-process support for the PMDs is added for intel-ipsec-mb v1.1. > > The minimum intel-ipsec-mb version required is bumped to 1.0. > > > > ZUC-256 support is added for the aesni_mb PMD, with relevant tests. > > > > v4: > > Acked-by: Akhil Goyal <gak...@marvell.com> > Patches are rebased over TOT of next-crypto > Release notes are updated > Applied to dpdk-next-crypto
I think compilation has not been tested. You need to update intel-ipsec-mb to v1.0. Result: drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘hash_keys’ may be used uninitialized [-Werror=maybe-uninitialized]/aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 1 of type ‘const void * const*’ to ‘void(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’} /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:145:21: note: ‘hash_keys’ declared here 145 | const void *hash_keys[ZUC_MAX_BURST]; | ^~~~~~~~~ In file included from ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8, from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8, from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5: drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘iv’ may be used uninitialized [-Werror=maybe-uninitialized] 176 | IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys, /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 2 of type ‘const void * const*’ to ‘void(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’} /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:144:18: note: ‘iv’ declared here 144 | uint8_t *iv[ZUC_MAX_BURST]; | ^~ In file included from ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8, from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8, from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5: drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘src’ may be used uninitialized [-Werror=maybe-uninitialized] 176 | IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys, /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ ../../dpdk/d(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’} 176 | IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys, /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:141:18: note: ‘src’ declared here 141 | uint8_t *src[ZUC_MAX_BURST]; | ^~~ In file included from ../../dpdk/drivers/crypto/ipsec_mb/ipsec_mb_private.h:8, from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc_priv.h:8, from ../../dpdk/drivers/crypto/ipsec_mb/pmd_zuc.c:5: drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: error: ‘length_in_bits’ may be used uninitialized [-Werror=maybe-uninitialized] 176 | IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys, /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:176:33: note: by argument 4 of type ‘const uint32_t *’ {aka ‘const unsigned int *’} to ‘void(const void * const*, const void * const*, const void * const*, const uint32_t *, uint32_t **, const uint32_t)’ {aka ‘void(const void * const*, const void * const*, const void * const*, const unsigned int *, unsigned int **, const unsigned int)’} 176 | IMB_ZUC_EIA3_N_BUFFER(qp->mb_mgr, (const void **)hash_keys, /aesni/intel-ipsec-mb/lib/intel-ipsec-mb.h:1444:11: note: in definition of macro ‘IMB_ZUC_EIA3_N_BUFFER’ 1444 | ((_mgr)->eia3_n_buffer((_key), (_iv), (_in), (_len), (_tag), (_num))) | ^~~~ drivers/crypto/ipsec_mb/pmd_zuc.c:143:18: note: ‘length_in_bits’ declared here 143 | uint32_t length_in_bits[ZUC_MAX_BURST]; | ^~~~~~~~~~~~~~ cc1: all warnings being treated as errors I think I will just drop all these patches from 21.11-rc1. Not sure I will accept any new revision, given how I am annoyed recently by such bad work in Intel.