[dpdk-dev] [EXT] [PATCH v4 00/14] drivers/crypto: introduce ipsec_mb framework
Thomas Monjalon
thomas at monjalon.net
Wed Oct 20 01:09:02 CEST 2021
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 <gakhil at 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.
More information about the dev
mailing list