[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <afd142a2-1fa0-46b9-8b2d-7652d41d3ab8@infradead.org>
Date: Mon, 16 Oct 2023 16:09:57 -0700
From: Randy Dunlap <rdunlap@...radead.org>
To: Gerd Bayer <gbayer@...ux.ibm.com>, wenjia@...ux.ibm.com
Cc: linux-kernel@...r.kernel.org, linux-next@...r.kernel.org,
netdev@...r.kernel.org, raspl@...ux.ibm.com, sfr@...b.auug.org.au,
alibuda@...ux.alibaba.com, wintera@...ux.ibm.com,
guwen@...ux.alibaba.com, tonylu@...ux.alibaba.com,
jaka@...ux.ibm.com
Subject: Re: [PATCH net] net/smc: Fix dependency of SMC on ISM
Hi Gerd,
On 10/6/23 05:58, Gerd Bayer wrote:
> 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@...radead.org>
> Closes: https://lore.kernel.org/linux-next/d53b5b50-d894-4df8-8969-fd39e63440ae@infradead.org/
> Co-developed-by: Wenjia Zhang <wenjia@...ux.ibm.com>
> Signed-off-by: Wenjia Zhang <wenjia@...ux.ibm.com>
> Signed-off-by: Gerd Bayer <gbayer@...ux.ibm.com>
With this patch, ISM can be build without SMC being enabled.
This leads to some build warnings:
../drivers/s390/net/ism_drv.c:572:12: warning: 'ism_get_local_gid' defined but not used [-Wunused-function]
572 | static u64 ism_get_local_gid(struct ism_dev *ism)
| ^~~~~~~~~~~~~~~~~
../drivers/s390/net/ism_drv.c:506:12: warning: 'ism_get_chid' defined but not used [-Wunused-function]
506 | static u16 ism_get_chid(struct ism_dev *ism)
| ^~~~~~~~~~~~
../drivers/s390/net/ism_drv.c:432:12: warning: 'ism_signal_ieq' defined but not used [-Wunused-function]
432 | static int ism_signal_ieq(struct ism_dev *ism, u64 rgid, u32 trigger_irq,
| ^~~~~~~~~~~~~~
../drivers/s390/net/ism_drv.c:292:12: warning: 'ism_query_rgid' defined but not used [-Wunused-function]
292 | static int ism_query_rgid(struct ism_dev *ism, u64 rgid, u32 vid_valid,
| ^~~~~~~~~~~~~~
> ---
> 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 74760c1a163b..4902d45e929c 100644
> --- a/drivers/s390/net/Kconfig
> +++ b/drivers/s390/net/Kconfig
> @@ -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
> diff --git a/net/smc/Kconfig b/net/smc/Kconfig
> index 1ab3c5a2c5ad..746be3996768 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
--
~Randy
Powered by blists - more mailing lists