Skip to content

Commit 72bc4e7

Browse files
solbjornherbertx
authored andcommitted
crypto: octeontx2 - Fix objects shared between several modules
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 637a642 ("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: 19d8e8c ("crypto: octeontx2 - add virtual function driver support") Suggested-by: Masahiro Yamada <[email protected]> Signed-off-by: Alexander Lobakin <[email protected]> Reviewed-by: Masahiro Yamada <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent 6084466 commit 72bc4e7

File tree

8 files changed

+39
-14
lines changed

8 files changed

+39
-14
lines changed
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
# SPDX-License-Identifier: GPL-2.0-only
2-
obj-$(CONFIG_CRYPTO_DEV_OCTEONTX2_CPT) += rvu_cptpf.o rvu_cptvf.o
2+
obj-$(CONFIG_CRYPTO_DEV_OCTEONTX2_CPT) += rvu_cptcommon.o rvu_cptpf.o rvu_cptvf.o
33

4+
rvu_cptcommon-objs := cn10k_cpt.o otx2_cptlf.o otx2_cpt_mbox_common.o
45
rvu_cptpf-objs := otx2_cptpf_main.o otx2_cptpf_mbox.o \
5-
otx2_cpt_mbox_common.o otx2_cptpf_ucode.o otx2_cptlf.o \
6-
cn10k_cpt.o otx2_cpt_devlink.o
7-
rvu_cptvf-objs := otx2_cptvf_main.o otx2_cptvf_mbox.o otx2_cptlf.o \
8-
otx2_cpt_mbox_common.o otx2_cptvf_reqmgr.o \
9-
otx2_cptvf_algs.o cn10k_cpt.o
6+
otx2_cptpf_ucode.o otx2_cpt_devlink.o
7+
rvu_cptvf-objs := otx2_cptvf_main.o otx2_cptvf_mbox.o \
8+
otx2_cptvf_reqmgr.o otx2_cptvf_algs.o
109

1110
ccflags-y += -I$(srctree)/drivers/net/ethernet/marvell/octeontx2/af

drivers/crypto/marvell/octeontx2/cn10k_cpt.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
#include "otx2_cptlf.h"
88
#include "cn10k_cpt.h"
99

10+
static void cn10k_cpt_send_cmd(union otx2_cpt_inst_s *cptinst, u32 insts_num,
11+
struct otx2_cptlf_info *lf);
12+
1013
static struct cpt_hw_ops otx2_hw_ops = {
1114
.send_cmd = otx2_cpt_send_cmd,
1215
.cpt_get_compcode = otx2_cpt_get_compcode,
@@ -19,8 +22,8 @@ static struct cpt_hw_ops cn10k_hw_ops = {
1922
.cpt_get_uc_compcode = cn10k_cpt_get_uc_compcode,
2023
};
2124

22-
void cn10k_cpt_send_cmd(union otx2_cpt_inst_s *cptinst, u32 insts_num,
23-
struct otx2_cptlf_info *lf)
25+
static void cn10k_cpt_send_cmd(union otx2_cpt_inst_s *cptinst, u32 insts_num,
26+
struct otx2_cptlf_info *lf)
2427
{
2528
void __iomem *lmtline = lf->lmtline;
2629
u64 val = (lf->slot & 0x7FF);
@@ -68,6 +71,7 @@ int cn10k_cptpf_lmtst_init(struct otx2_cptpf_dev *cptpf)
6871

6972
return 0;
7073
}
74+
EXPORT_SYMBOL_NS_GPL(cn10k_cptpf_lmtst_init, CRYPTO_DEV_OCTEONTX2_CPT);
7175

7276
int cn10k_cptvf_lmtst_init(struct otx2_cptvf_dev *cptvf)
7377
{
@@ -91,3 +95,4 @@ int cn10k_cptvf_lmtst_init(struct otx2_cptvf_dev *cptvf)
9195

9296
return 0;
9397
}
98+
EXPORT_SYMBOL_NS_GPL(cn10k_cptvf_lmtst_init, CRYPTO_DEV_OCTEONTX2_CPT);

drivers/crypto/marvell/octeontx2/cn10k_cpt.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ static inline u8 otx2_cpt_get_uc_compcode(union otx2_cpt_res_s *result)
2828
return ((struct cn9k_cpt_res_s *)result)->uc_compcode;
2929
}
3030

31-
void cn10k_cpt_send_cmd(union otx2_cpt_inst_s *cptinst, u32 insts_num,
32-
struct otx2_cptlf_info *lf);
3331
int cn10k_cptpf_lmtst_init(struct otx2_cptpf_dev *cptpf);
3432
int cn10k_cptvf_lmtst_init(struct otx2_cptvf_dev *cptvf);
3533

drivers/crypto/marvell/octeontx2/otx2_cpt_common.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,6 @@ int otx2_cpt_send_mbox_msg(struct otx2_mbox *mbox, struct pci_dev *pdev);
145145

146146
int otx2_cpt_send_af_reg_requests(struct otx2_mbox *mbox,
147147
struct pci_dev *pdev);
148-
int otx2_cpt_add_read_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
149-
u64 reg, u64 *val, int blkaddr);
150148
int otx2_cpt_add_write_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
151149
u64 reg, u64 val, int blkaddr);
152150
int otx2_cpt_read_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,

drivers/crypto/marvell/octeontx2/otx2_cpt_mbox_common.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ int otx2_cpt_send_mbox_msg(struct otx2_mbox *mbox, struct pci_dev *pdev)
1919
}
2020
return ret;
2121
}
22+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_send_mbox_msg, CRYPTO_DEV_OCTEONTX2_CPT);
2223

2324
int otx2_cpt_send_ready_msg(struct otx2_mbox *mbox, struct pci_dev *pdev)
2425
{
@@ -36,14 +37,17 @@ int otx2_cpt_send_ready_msg(struct otx2_mbox *mbox, struct pci_dev *pdev)
3637

3738
return otx2_cpt_send_mbox_msg(mbox, pdev);
3839
}
40+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_send_ready_msg, CRYPTO_DEV_OCTEONTX2_CPT);
3941

4042
int otx2_cpt_send_af_reg_requests(struct otx2_mbox *mbox, struct pci_dev *pdev)
4143
{
4244
return otx2_cpt_send_mbox_msg(mbox, pdev);
4345
}
46+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_send_af_reg_requests, CRYPTO_DEV_OCTEONTX2_CPT);
4447

45-
int otx2_cpt_add_read_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
46-
u64 reg, u64 *val, int blkaddr)
48+
static int otx2_cpt_add_read_af_reg(struct otx2_mbox *mbox,
49+
struct pci_dev *pdev, u64 reg,
50+
u64 *val, int blkaddr)
4751
{
4852
struct cpt_rd_wr_reg_msg *reg_msg;
4953

@@ -91,6 +95,7 @@ int otx2_cpt_add_write_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
9195

9296
return 0;
9397
}
98+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_add_write_af_reg, CRYPTO_DEV_OCTEONTX2_CPT);
9499

95100
int otx2_cpt_read_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
96101
u64 reg, u64 *val, int blkaddr)
@@ -103,6 +108,7 @@ int otx2_cpt_read_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
103108

104109
return otx2_cpt_send_mbox_msg(mbox, pdev);
105110
}
111+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_read_af_reg, CRYPTO_DEV_OCTEONTX2_CPT);
106112

107113
int otx2_cpt_write_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
108114
u64 reg, u64 val, int blkaddr)
@@ -115,6 +121,7 @@ int otx2_cpt_write_af_reg(struct otx2_mbox *mbox, struct pci_dev *pdev,
115121

116122
return otx2_cpt_send_mbox_msg(mbox, pdev);
117123
}
124+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_write_af_reg, CRYPTO_DEV_OCTEONTX2_CPT);
118125

119126
int otx2_cpt_attach_rscrs_msg(struct otx2_cptlfs_info *lfs)
120127
{
@@ -170,6 +177,7 @@ int otx2_cpt_detach_rsrcs_msg(struct otx2_cptlfs_info *lfs)
170177

171178
return ret;
172179
}
180+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_detach_rsrcs_msg, CRYPTO_DEV_OCTEONTX2_CPT);
173181

174182
int otx2_cpt_msix_offset_msg(struct otx2_cptlfs_info *lfs)
175183
{
@@ -202,6 +210,7 @@ int otx2_cpt_msix_offset_msg(struct otx2_cptlfs_info *lfs)
202210
}
203211
return ret;
204212
}
213+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_msix_offset_msg, CRYPTO_DEV_OCTEONTX2_CPT);
205214

206215
int otx2_cpt_sync_mbox_msg(struct otx2_mbox *mbox)
207216
{
@@ -216,3 +225,4 @@ int otx2_cpt_sync_mbox_msg(struct otx2_mbox *mbox)
216225

217226
return otx2_mbox_check_rsp_msgs(mbox, 0);
218227
}
228+
EXPORT_SYMBOL_NS_GPL(otx2_cpt_sync_mbox_msg, CRYPTO_DEV_OCTEONTX2_CPT);

drivers/crypto/marvell/octeontx2/otx2_cptlf.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,8 @@ void otx2_cptlf_unregister_interrupts(struct otx2_cptlfs_info *lfs)
274274
}
275275
cptlf_disable_intrs(lfs);
276276
}
277+
EXPORT_SYMBOL_NS_GPL(otx2_cptlf_unregister_interrupts,
278+
CRYPTO_DEV_OCTEONTX2_CPT);
277279

278280
static int cptlf_do_register_interrrupts(struct otx2_cptlfs_info *lfs,
279281
int lf_num, int irq_offset,
@@ -321,6 +323,7 @@ int otx2_cptlf_register_interrupts(struct otx2_cptlfs_info *lfs)
321323
otx2_cptlf_unregister_interrupts(lfs);
322324
return ret;
323325
}
326+
EXPORT_SYMBOL_NS_GPL(otx2_cptlf_register_interrupts, CRYPTO_DEV_OCTEONTX2_CPT);
324327

325328
void otx2_cptlf_free_irqs_affinity(struct otx2_cptlfs_info *lfs)
326329
{
@@ -334,6 +337,7 @@ void otx2_cptlf_free_irqs_affinity(struct otx2_cptlfs_info *lfs)
334337
free_cpumask_var(lfs->lf[slot].affinity_mask);
335338
}
336339
}
340+
EXPORT_SYMBOL_NS_GPL(otx2_cptlf_free_irqs_affinity, CRYPTO_DEV_OCTEONTX2_CPT);
337341

338342
int otx2_cptlf_set_irqs_affinity(struct otx2_cptlfs_info *lfs)
339343
{
@@ -366,6 +370,7 @@ int otx2_cptlf_set_irqs_affinity(struct otx2_cptlfs_info *lfs)
366370
otx2_cptlf_free_irqs_affinity(lfs);
367371
return ret;
368372
}
373+
EXPORT_SYMBOL_NS_GPL(otx2_cptlf_set_irqs_affinity, CRYPTO_DEV_OCTEONTX2_CPT);
369374

370375
int otx2_cptlf_init(struct otx2_cptlfs_info *lfs, u8 eng_grp_mask, int pri,
371376
int lfs_num)
@@ -422,6 +427,7 @@ int otx2_cptlf_init(struct otx2_cptlfs_info *lfs, u8 eng_grp_mask, int pri,
422427
lfs->lfs_num = 0;
423428
return ret;
424429
}
430+
EXPORT_SYMBOL_NS_GPL(otx2_cptlf_init, CRYPTO_DEV_OCTEONTX2_CPT);
425431

426432
void otx2_cptlf_shutdown(struct otx2_cptlfs_info *lfs)
427433
{
@@ -431,3 +437,8 @@ void otx2_cptlf_shutdown(struct otx2_cptlfs_info *lfs)
431437
/* Send request to detach LFs */
432438
otx2_cpt_detach_rsrcs_msg(lfs);
433439
}
440+
EXPORT_SYMBOL_NS_GPL(otx2_cptlf_shutdown, CRYPTO_DEV_OCTEONTX2_CPT);
441+
442+
MODULE_AUTHOR("Marvell");
443+
MODULE_DESCRIPTION("Marvell RVU CPT Common module");
444+
MODULE_LICENSE("GPL");

drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,8 @@ static struct pci_driver otx2_cpt_pci_driver = {
831831

832832
module_pci_driver(otx2_cpt_pci_driver);
833833

834+
MODULE_IMPORT_NS(CRYPTO_DEV_OCTEONTX2_CPT);
835+
834836
MODULE_AUTHOR("Marvell");
835837
MODULE_DESCRIPTION(OTX2_CPT_DRV_STRING);
836838
MODULE_LICENSE("GPL v2");

drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,8 @@ static struct pci_driver otx2_cptvf_pci_driver = {
429429

430430
module_pci_driver(otx2_cptvf_pci_driver);
431431

432+
MODULE_IMPORT_NS(CRYPTO_DEV_OCTEONTX2_CPT);
433+
432434
MODULE_AUTHOR("Marvell");
433435
MODULE_DESCRIPTION("Marvell RVU CPT Virtual Function Driver");
434436
MODULE_LICENSE("GPL v2");

0 commit comments

Comments
 (0)