crypto: octeontx2 - Add dependency on NET_VENDOR_MARVELL
diff mbox series

Message ID 20210129054856.GA20020@gondor.apana.org.au
State Accepted
Commit b4ea2220b86afe6ea962c3bd51f61eaf56cd8212
Headers show
Series
  • crypto: octeontx2 - Add dependency on NET_VENDOR_MARVELL
Related show

Commit Message

Herbert Xu Jan. 29, 2021, 5:48 a.m. UTC
On Mon, Jan 25, 2021 at 09:41:12AM -0800, Randy Dunlap wrote:
> on x86_64:
> 
> ld: drivers/crypto/marvell/octeontx2/otx2_cptpf_main.o: in function `cptpf_flr_wq_handler':
> otx2_cptpf_main.c:(.text+0x2b): undefined reference to `otx2_mbox_alloc_msg_rsp'

Thanks for the report.  The issue is that the crypto driver depends
on code that sits under net so if that option is off then you'll end
up with these errors.

---8<---
The crypto octeontx2 driver depends on the mbox code in the network
tree.  It tries to select the MBOX Kconfig option but that option
itself depends on many other options which are not selected, e.g.,
CONFIG_NET_VENDOR_MARVELL.  It would be inappropriate to select them
all as randomly prompting the user for network options which would
oterhwise be disabled just because a crypto driver has been enabled
makes no sense.

This patch fixes this by adding a dependency on NET_VENDOR_MARVELL.
This makes the crypto driver invisible if the network option is off.

If the crypto driver must be visible even without the network stack
then the shared mbox code should be moved out of drivers/net.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kernel test robot <lkp@intel.com>
Fixes: 5e8ce8334734 ("crypto: marvell - add Marvell OcteonTX2 CPT...")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Comments

Randy Dunlap Jan. 29, 2021, 7:04 a.m. UTC | #1
On 1/28/21 9:48 PM, Herbert Xu wrote:
> On Mon, Jan 25, 2021 at 09:41:12AM -0800, Randy Dunlap wrote:
>> on x86_64:
>>
>> ld: drivers/crypto/marvell/octeontx2/otx2_cptpf_main.o: in function `cptpf_flr_wq_handler':
>> otx2_cptpf_main.c:(.text+0x2b): undefined reference to `otx2_mbox_alloc_msg_rsp'
> 
> Thanks for the report.  The issue is that the crypto driver depends
> on code that sits under net so if that option is off then you'll end
> up with these errors.
> 
> ---8<---
> The crypto octeontx2 driver depends on the mbox code in the network
> tree.  It tries to select the MBOX Kconfig option but that option
> itself depends on many other options which are not selected, e.g.,
> CONFIG_NET_VENDOR_MARVELL.  It would be inappropriate to select them
> all as randomly prompting the user for network options which would
> oterhwise be disabled just because a crypto driver has been enabled
> makes no sense.
> 
> This patch fixes this by adding a dependency on NET_VENDOR_MARVELL.
> This makes the crypto driver invisible if the network option is off.
> 
> If the crypto driver must be visible even without the network stack
> then the shared mbox code should be moved out of drivers/net.
> 
> Reported-by: Randy Dunlap <rdunlap@infradead.org>
> Reported-by: kernel test robot <lkp@intel.com>
> Fixes: 5e8ce8334734 ("crypto: marvell - add Marvell OcteonTX2 CPT...")
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Thanks, Herbert.

Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested


> diff --git a/drivers/crypto/marvell/Kconfig b/drivers/crypto/marvell/Kconfig
> index 2efbd79180ce..a188ad1fadd3 100644
> --- a/drivers/crypto/marvell/Kconfig
> +++ b/drivers/crypto/marvell/Kconfig
> @@ -41,6 +41,7 @@ config CRYPTO_DEV_OCTEONTX2_CPT
>  	depends on ARM64 || COMPILE_TEST
>  	depends on PCI_MSI && 64BIT
>  	depends on CRYPTO_LIB_AES
> +	depends on NET_VENDOR_MARVELL
>  	select OCTEONTX2_MBOX
>  	select CRYPTO_DEV_MARVELL
>  	select CRYPTO_SKCIPHER
>
Srujana Challa Feb. 1, 2021, 3:24 a.m. UTC | #2
> Hi Srujana,
> 
> On Fri, Jan 29, 2021 at 6:53 AM Herbert Xu <herbert@gondor.apana.org.au>
> wrote:
> > On Mon, Jan 25, 2021 at 09:41:12AM -0800, Randy Dunlap wrote:
> > > on x86_64:
> > >
> > > ld: drivers/crypto/marvell/octeontx2/otx2_cptpf_main.o: in function
> `cptpf_flr_wq_handler':
> > > otx2_cptpf_main.c:(.text+0x2b): undefined reference to
> `otx2_mbox_alloc_msg_rsp'
> >
> > Thanks for the report.  The issue is that the crypto driver depends on
> > code that sits under net so if that option is off then you'll end up
> > with these errors.
> >
> > ---8<---
> > The crypto octeontx2 driver depends on the mbox code in the network
> > tree.  It tries to select the MBOX Kconfig option but that option
> > itself depends on many other options which are not selected, e.g.,
> > CONFIG_NET_VENDOR_MARVELL.  It would be inappropriate to select them
> > all as randomly prompting the user for network options which would
> > oterhwise be disabled just because a crypto driver has been enabled
> > makes no sense.
> >
> > This patch fixes this by adding a dependency on NET_VENDOR_MARVELL.
> > This makes the crypto driver invisible if the network option is off.
> >
> > If the crypto driver must be visible even without the network stack
> > then the shared mbox code should be moved out of drivers/net.
> >
> > Reported-by: Randy Dunlap <rdunlap@infradead.org>
> > Reported-by: kernel test robot <lkp@intel.com>
> > Fixes: 5e8ce8334734 ("crypto: marvell - add Marvell OcteonTX2 CPT...")
> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
> >
> > diff --git a/drivers/crypto/marvell/Kconfig
> > b/drivers/crypto/marvell/Kconfig index 2efbd79180ce..a188ad1fadd3
> > 100644
> > --- a/drivers/crypto/marvell/Kconfig
> > +++ b/drivers/crypto/marvell/Kconfig
> > @@ -41,6 +41,7 @@ config CRYPTO_DEV_OCTEONTX2_CPT
> >         depends on ARM64 || COMPILE_TEST
> 
> Why the dependency on ARM64? Perhaps this should be a dependency on
> ARCH_THUNDER instead?
This driver depends on ARM64 because the silicon is ARM64 based and for
operations like lmtst
([PATCH v10,net-next,1/3] octeontx2-pf: move lmt flush to include/linux/soc)
we use arm64 assembly instructions.

> I see this driver is a PCI driver. Can the PCI device be present on a generic
> PCI(e) expansion card, or is it always embedded in an Octeon SoC?
> 
> Thanks!
>
This PCI device is present only on OcteonTx2 SoC and not as a independent
PCIe endpoint.
  
> >         depends on PCI_MSI && 64BIT
> >         depends on CRYPTO_LIB_AES
> > +       depends on NET_VENDOR_MARVELL
> >         select OCTEONTX2_MBOX
> >         select CRYPTO_DEV_MARVELL
> >         select CRYPTO_SKCIPHER
> > --
> > Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page:
> > https://urldefense.proofpoint.com/v2/url?u=http-3A__gondor.apana.org.a
> > u_-
> 7Eherbert_&d=DwIBaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=Fj4OoD5hcKFpANh
> TWdwQ
> > zjT1Jpf7veC5263T47JVpnc&m=dRYGbkafMlmqjN6rLZeFXL0zOADTNp6sYkm-
> lHW4_cA&
> > s=sbjI8As-bTTHmNW8JKq01AP2qaDCAWuVmHAOVz7tEGI&e=
> > PGP Key:
> > https://urldefense.proofpoint.com/v2/url?u=http-3A__gondor.apana.org.a
> > u_-
> 7Eherbert_pubkey.txt&d=DwIBaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=Fj4OoD
> 5hcK
> >
> FpANhTWdwQzjT1Jpf7veC5263T47JVpnc&m=dRYGbkafMlmqjN6rLZeFXL0zOA
> DTNp6sYk
> > m-lHW4_cA&s=Qv1MXxxyejkh_qp7LaT0xDiOL1kNRvo4BP4Lz1gQMJI&e=
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-
> m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like
> that.
>                                 -- Linus Torvalds

Patch
diff mbox series

diff --git a/drivers/crypto/marvell/Kconfig b/drivers/crypto/marvell/Kconfig
index 2efbd79180ce..a188ad1fadd3 100644
--- a/drivers/crypto/marvell/Kconfig
+++ b/drivers/crypto/marvell/Kconfig
@@ -41,6 +41,7 @@  config CRYPTO_DEV_OCTEONTX2_CPT
 	depends on ARM64 || COMPILE_TEST
 	depends on PCI_MSI && 64BIT
 	depends on CRYPTO_LIB_AES
+	depends on NET_VENDOR_MARVELL
 	select OCTEONTX2_MBOX
 	select CRYPTO_DEV_MARVELL
 	select CRYPTO_SKCIPHER