diff mbox series

IB/rxe: fix kconfig dependency warning for RDMA_RXE

Message ID 20200915101559.33292-1-fazilyildiran@gmail.com (mailing list archive)
State Rejected
Headers show
Series IB/rxe: fix kconfig dependency warning for RDMA_RXE | expand

Commit Message

Necip Fazil Yildiran Sept. 15, 2020, 10:16 a.m. UTC
When RDMA_RXE is enabled and CRYPTO is disabled, it results in the
following Kbuild warning:

WARNING: unmet direct dependencies detected for CRYPTO_CRC32
  Depends on [n]: CRYPTO [=n]
  Selected by [y]:
  - RDMA_RXE [=y] && (INFINIBAND_USER_ACCESS [=y] || !INFINIBAND_USER_ACCESS [=y]) && INET [=y] && PCI [=y] && INFINIBAND [=y] && (!64BIT || ARCH_DMA_ADDR_T_64BIT [=n])

The reason is that RDMA_RXE selects CRYPTO_CRC32 without depending on or
selecting CRYPTO while CRYPTO_CRC32 is subordinate to CRYPTO.

Honor the kconfig menu hierarchy to remove kconfig dependency warnings.

Fixes: 0812ed132178 ("IB/rxe: Change RDMA_RXE kconfig to use select")
Signed-off-by: Necip Fazil Yildiran <fazilyildiran@gmail.com>
---
 drivers/infiniband/sw/rxe/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Leon Romanovsky Sept. 15, 2020, 10:59 a.m. UTC | #1
On Tue, Sep 15, 2020 at 01:16:00PM +0300, Necip Fazil Yildiran wrote:
> When RDMA_RXE is enabled and CRYPTO is disabled, it results in the
> following Kbuild warning:
>
> WARNING: unmet direct dependencies detected for CRYPTO_CRC32
>   Depends on [n]: CRYPTO [=n]
>   Selected by [y]:
>   - RDMA_RXE [=y] && (INFINIBAND_USER_ACCESS [=y] || !INFINIBAND_USER_ACCESS [=y]) && INET [=y] && PCI [=y] && INFINIBAND [=y] && (!64BIT || ARCH_DMA_ADDR_T_64BIT [=n])
>
> The reason is that RDMA_RXE selects CRYPTO_CRC32 without depending on or
> selecting CRYPTO while CRYPTO_CRC32 is subordinate to CRYPTO.

It is not RXE specific issue and almost all users of CRYPTO_* configs
don't select CRYPTO.

There are two possible solutions.
1. Fix crypto/Kconfig to enable CRYPTO.
2. Change "select CRYPTO_CRC32" to be "depends on CRYPTO_CRC32".

Thanks

>
> Honor the kconfig menu hierarchy to remove kconfig dependency warnings.
>
> Fixes: 0812ed132178 ("IB/rxe: Change RDMA_RXE kconfig to use select")
> Signed-off-by: Necip Fazil Yildiran <fazilyildiran@gmail.com>
> ---
>  drivers/infiniband/sw/rxe/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/infiniband/sw/rxe/Kconfig b/drivers/infiniband/sw/rxe/Kconfig
> index a0c6c7dfc181..e1f52710edfc 100644
> --- a/drivers/infiniband/sw/rxe/Kconfig
> +++ b/drivers/infiniband/sw/rxe/Kconfig
> @@ -4,6 +4,7 @@ config RDMA_RXE
>  	depends on INET && PCI && INFINIBAND
>  	depends on !64BIT || ARCH_DMA_ADDR_T_64BIT
>  	select NET_UDP_TUNNEL
> +	select CRYPTO
>  	select CRYPTO_CRC32
>  	select DMA_VIRT_OPS
>  	help
> --
> 2.25.1
>
Jason Gunthorpe Sept. 15, 2020, 11:23 a.m. UTC | #2
On Tue, Sep 15, 2020 at 01:16:00PM +0300, Necip Fazil Yildiran wrote:
> When RDMA_RXE is enabled and CRYPTO is disabled, it results in the
> following Kbuild warning:
> 
> WARNING: unmet direct dependencies detected for CRYPTO_CRC32
>   Depends on [n]: CRYPTO [=n]
>   Selected by [y]:
>   - RDMA_RXE [=y] && (INFINIBAND_USER_ACCESS [=y] || !INFINIBAND_USER_ACCESS [=y]) && INET [=y] && PCI [=y] && INFINIBAND [=y] && (!64BIT || ARCH_DMA_ADDR_T_64BIT [=n])

?? how did you get here? I thought the kconfig front ends were
supposed to prevent this.

Jason
Necip Fazil Yildiran Sept. 15, 2020, 12:45 p.m. UTC | #3
Steps to reproduce this for v5.9-rc4 on x86 machine (using make.cross [1]
to cross compile for arm64):
1. make.cross ARCH=arm64 allnoconfig
2. make.cross ARCH=arm64 menuconfig
  a. Enable NET
  b. Enable INET
  c. Enable PCI
  d. Enable INFINIBAND
  e. Enable RDMA_RXE
3. make.cross ARCH=arm64 olddefconfig # WARNING: unmet direct
dependencies detected for CRYPTO_CRC32

[1] https://github.com/fengguang/lkp-tests/blob/master/sbin/make.cross

Thanks
Necip

On Tue, Sep 15, 2020 at 2:23 PM Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Tue, Sep 15, 2020 at 01:16:00PM +0300, Necip Fazil Yildiran wrote:
> > When RDMA_RXE is enabled and CRYPTO is disabled, it results in the
> > following Kbuild warning:
> >
> > WARNING: unmet direct dependencies detected for CRYPTO_CRC32
> >   Depends on [n]: CRYPTO [=n]
> >   Selected by [y]:
> >   - RDMA_RXE [=y] && (INFINIBAND_USER_ACCESS [=y] || !INFINIBAND_USER_ACCESS [=y]) && INET [=y] && PCI [=y] && INFINIBAND [=y] && (!64BIT || ARCH_DMA_ADDR_T_64BIT [=n])
>
> ?? how did you get here? I thought the kconfig front ends were
> supposed to prevent this.
>
> Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/sw/rxe/Kconfig b/drivers/infiniband/sw/rxe/Kconfig
index a0c6c7dfc181..e1f52710edfc 100644
--- a/drivers/infiniband/sw/rxe/Kconfig
+++ b/drivers/infiniband/sw/rxe/Kconfig
@@ -4,6 +4,7 @@  config RDMA_RXE
 	depends on INET && PCI && INFINIBAND
 	depends on !64BIT || ARCH_DMA_ADDR_T_64BIT
 	select NET_UDP_TUNNEL
+	select CRYPTO
 	select CRYPTO_CRC32
 	select DMA_VIRT_OPS
 	help