| From 0d52b7ae5b0a68356425895de18620678d945147 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 6 Oct 2023 14:58:47 +0200 |
| Subject: net/smc: Fix dependency of SMC on ISM |
| |
| From: Gerd Bayer <gbayer@linux.ibm.com> |
| |
| [ Upstream commit a72178cfe855c283224f393d94a1332b90d1483e ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/s390/net/Kconfig | 2 +- |
| net/smc/Kconfig | 1 + |
| 2 files changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig |
| index 9c67b97faba2b..610ad8a801a57 100644 |
| --- a/drivers/s390/net/Kconfig |
| +++ b/drivers/s390/net/Kconfig |
| @@ -103,7 +103,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 |
| diff --git a/net/smc/Kconfig b/net/smc/Kconfig |
| index 1ab3c5a2c5ada..746be39967683 100644 |
| --- a/net/smc/Kconfig |
| +++ b/net/smc/Kconfig |
| @@ -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 |
| -- |
| 2.40.1 |
| |