net/smc: Fix dependency of SMC on ISM
authorGerd Bayer <gbayer@linux.ibm.com>
Fri, 6 Oct 2023 12:58:47 +0000 (14:58 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 10 Oct 2023 09:51:41 +0000 (11:51 +0200)
When the SMC protocol is built into the kernel proper while ISM is
configured to be built as module, linking the kernel fails due to
unresolved dependencies out of net/smc/smc_ism.o to
ism_get_smcd_ops, ism_register_client, and ism_unregister_client
as reported via the linux-next test automation (see link).
This however is a bug introduced a while ago.

Correct the dependency list in ISM's and SMC's Kconfig to reflect the
dependencies that are actually inverted. With this you cannot build a
kernel with CONFIG_SMC=y and CONFIG_ISM=m. Either ISM needs to be 'y',
too - or a 'n'. That way, SMC can still be configured on non-s390
architectures that do not have (nor need) an ISM driver.

Fixes: 89e7d2ba61b7 ("net/ism: Add new API for client registration")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Closes: https://lore.kernel.org/linux-next/d53b5b50-d894-4df8-8969-fd39e63440ae@infradead.org/
Co-developed-by: Wenjia Zhang <wenjia@linux.ibm.com>
Signed-off-by: Wenjia Zhang <wenjia@linux.ibm.com>
Signed-off-by: Gerd Bayer <gbayer@linux.ibm.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Simon Horman <horms@kernel.org> # build-tested
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Link: https://lore.kernel.org/r/20231006125847.1517840-1-gbayer@linux.ibm.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/s390/net/Kconfig
net/smc/Kconfig

index 74760c1..4902d45 100644 (file)
@@ -102,7 +102,7 @@ config CCWGROUP
 
 config ISM
        tristate "Support for ISM vPCI Adapter"
-       depends on PCI && SMC
+       depends on PCI
        default n
        help
          Select this option if you want to use the Internal Shared Memory
index 1ab3c5a..746be39 100644 (file)
@@ -2,6 +2,7 @@
 config SMC
        tristate "SMC socket protocol family"
        depends on INET && INFINIBAND
+       depends on m || ISM != m
        help
          SMC-R provides a "sockets over RDMA" solution making use of
          RDMA over Converged Ethernet (RoCE) technology to upgrade