Re: [PATCH -next] rdma/siw: Add missing dependencies on LIBCRC32C and DMA_VIRT_OPS

From: Jason Gunthorpe
Date: Wed Jul 10 2019 - 10:46:41 EST


On Wed, Jul 10, 2019 at 03:39:30PM +0200, Geert Uytterhoeven wrote:
> If LIBCRC32C and DMA_VIRT_OPS are not enabled:
>
> drivers/infiniband/sw/siw/siw_main.o: In function `siw_newlink':
> siw_main.c:(.text+0x35c): undefined reference to `dma_virt_ops'
> drivers/infiniband/sw/siw/siw_qp_rx.o: In function `siw_csum_update':
> siw_qp_rx.c:(.text+0x16): undefined reference to `crc32c'
>
> Fix the first issue by adding a select of DMA_VIRT_OPS.
> Fix the second issue by replacing the unneeded dependency on
> CRYPTO_CRC32 by a dependency on LIBCRC32C.
>
> Reported-by: noreply@xxxxxxxxxxxxxx (first issue)
> Fixes: c0cf5bdde46c664d ("rdma/siw: addition to kernel build environment")
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> drivers/infiniband/sw/siw/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/sw/siw/Kconfig b/drivers/infiniband/sw/siw/Kconfig
> index 94f684174ce3556e..b622fc62f2cd6d46 100644
> +++ b/drivers/infiniband/sw/siw/Kconfig
> @@ -1,6 +1,7 @@
> config RDMA_SIW
> tristate "Software RDMA over TCP/IP (iWARP) driver"
> - depends on INET && INFINIBAND && CRYPTO_CRC32
> + depends on INET && INFINIBAND && LIBCRC32C

Is this the best practice?

siw is using both the libcrc32c API and the
'crypto_alloc_shash("crc32c", 0, 0);' version. Is it right to get that
transitively through LIBCRC32C?

Jason