[PATCH] smb: fix smbdirect link failure
Arnd Bergmann <[email protected]> Fri, 6 Mar 2026 15:44:04 +0100
| Newsgroups | gmane.linux.kernel,gmane.linux.kernel.cifs,gmane.network.samba.internals |
|---|---|
| Message-ID | <[email protected]> |
From: Arnd Bergmann <[email protected]> When CONFIG_INFINIBAND is set to =m, it is not possible to have SMBDIRECT built-in, and it turns into a loadable module, but this does not prevent CIFS and SMB_SERVER from being built-in, which in turn causes this link error: ld.lld-22: error: undefined symbol: smbdirect_socket_release >>> referenced by smbdirect.c:212 (fs/smb/client/smbdirect.c:212) >>> fs/smb/client/smbdirect.o:(smbd_destroy) in archive vmlinux.a >>> referenced by smbdirect.c:212 (fs/smb/client/smbdirect.c:212) >>> fs/smb/client/smbdirect.o:(smbd_reconnect) in archive vmlinux.a >>> referenced by smbdirect.c:338 (fs/smb/client/smbdirect.c:338) >>> fs/smb/client/smbdirect.o:(smbd_get_connection) in archive vmlinux.a Enforce the dependency at Kconfig level, so that the respective smpdirect options are only offered if it's possible to link against the common module and infiniband. Fixes: 28504d6ee127 ("smb: client: make use of smbdirect.ko") Signed-off-by: Arnd Bergmann <[email protected]> --- fs/smb/client/Kconfig | 1 + fs/smb/server/Kconfig | 1 + 2 files changed, 2 insertions(+) diff --git a/fs/smb/client/Kconfig b/fs/smb/client/Kconfig index 72f47669da0c..981b3b5be09b 100644 --- a/fs/smb/client/Kconfig +++ b/fs/smb/client/Kconfig @@ -182,6 +182,7 @@ if CIFS config CIFS_SMB_DIRECT bool "SMB Direct support" depends on CIFS && INFINIBAND && INFINIBAND_ADDR_TRANS + depends on CIFS=m || INFINIBAND=y select SMB_COMMON_SMBDIRECT help Enables SMB Direct support for SMB 3.0, 3.02 and 3.1.1. diff --git a/fs/smb/server/Kconfig b/fs/smb/server/Kconfig index b084071d2442..5c77c5552ed8 100644 --- a/fs/smb/server/Kconfig +++ b/fs/smb/server/Kconfig @@ -49,6 +49,7 @@ if SMB_SERVER config SMB_SERVER_SMBDIRECT bool "Support for SMB Direct protocol" depends on SMB_SERVER && INFINIBAND && INFINIBAND_ADDR_TRANS + depends on SMB_SERVER=m || INFINIBAND=y select SMB_COMMON_SMBDIRECT default n -- 2.39.5