• Alexander Lobakin's avatar
    crypto: octeontx2 - Fix objects shared between several modules · 72bc4e71
    Alexander Lobakin authored
    cn10k_cpt.o, otx2_cptlf.o and otx2_cpt_mbox_common.o are linked
    into both rvu_cptpf and rvu_cptvf modules:
    
    > scripts/Makefile.build:252: ./drivers/crypto/marvell/octeontx2/Makefile:
    > cn10k_cpt.o is added to multiple modules: rvu_cptpf rvu_cptvf
    > scripts/Makefile.build:252: ./drivers/crypto/marvell/octeontx2/Makefile:
    > otx2_cptlf.o is added to multiple modules: rvu_cptpf rvu_cptvf
    > scripts/Makefile.build:252: ./drivers/crypto/marvell/octeontx2/Makefile:
    > otx2_cpt_mbox_common.o is added to multiple modules: rvu_cptpf rvu_cptvf
    
    Despite they're build under the same Kconfig option
    (CONFIG_CRYPTO_DEV_OCTEONTX2_CPT), it's better do link the common
    code into a standalone module and export the shared functions. Under
    certain circumstances, this can lead to the same situation as fixed
    by commit 637a642f ("zstd: Fixing mixed module-builtin objects").
    Plus, those three common object files are relatively big to duplicate
    them several times.
    
    Introduce the new module, rvu_cptcommon, to provide the common
    functions to both modules.
    
    Fixes: 19d8e8c7 ("crypto: octeontx2 - add virtual function driver support")
    Suggested-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: default avatarAlexander Lobakin <alobakin@pm.me>
    Reviewed-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    72bc4e71
otx2_cptpf_main.c 21.5 KB