This is a note to let you know that I've just added the patch titled ksmbd: set 445 port to smbdirect port by default to the 5.15-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: ksmbd-set-445-port-to-smbdirect-port-by-default.patch and it can be found in the queue-5.15 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable+bounces-7646-greg=kroah.com@xxxxxxxxxxxxxxx Mon Dec 18 16:38:15 2023 From: Namjae Jeon <linkinjeon@xxxxxxxxxx> Date: Tue, 19 Dec 2023 00:32:37 +0900 Subject: ksmbd: set 445 port to smbdirect port by default To: gregkh@xxxxxxxxxxxxxxxxxxx, stable@xxxxxxxxxxxxxxx Cc: smfrench@xxxxxxxxx, Namjae Jeon <linkinjeon@xxxxxxxxxx>, Steve French <stfrench@xxxxxxxxxxxxx> Message-ID: <20231218153454.8090-18-linkinjeon@xxxxxxxxxx> From: Namjae Jeon <linkinjeon@xxxxxxxxxx> [ Upstream commit cb097b3dd5ece9596a0a0b7e33893c02a9bde8c6 ] When SMB Direct is used with iWARP, Windows use 5445 port for smb direct port, 445 port for SMB. This patch check ib_device using ib_client to know if NICs type is iWARP or Infiniband. Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx> Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/ksmbd/transport_rdma.c | 15 ++++++++++++--- fs/ksmbd/transport_rdma.h | 2 -- 2 files changed, 12 insertions(+), 5 deletions(-) --- a/fs/ksmbd/transport_rdma.c +++ b/fs/ksmbd/transport_rdma.c @@ -34,7 +34,8 @@ #include "smbstatus.h" #include "transport_rdma.h" -#define SMB_DIRECT_PORT 5445 +#define SMB_DIRECT_PORT_IWARP 5445 +#define SMB_DIRECT_PORT_INFINIBAND 445 #define SMB_DIRECT_VERSION_LE cpu_to_le16(0x0100) @@ -60,6 +61,10 @@ * as defined in [MS-SMBD] 3.1.1.1 * Those may change after a SMB_DIRECT negotiation */ + +/* Set 445 port to SMB Direct port by default */ +static int smb_direct_port = SMB_DIRECT_PORT_INFINIBAND; + /* The local peer's maximum number of credits to grant to the peer */ static int smb_direct_receive_credit_max = 255; @@ -1948,7 +1953,7 @@ static int smb_direct_handle_connect_req KSMBD_TRANS(t)->handler = kthread_run(ksmbd_conn_handler_loop, KSMBD_TRANS(t)->conn, "ksmbd:r%u", - SMB_DIRECT_PORT); + smb_direct_port); if (IS_ERR(KSMBD_TRANS(t)->handler)) { int ret = PTR_ERR(KSMBD_TRANS(t)->handler); @@ -2025,6 +2030,10 @@ static int smb_direct_ib_client_add(stru { struct smb_direct_device *smb_dev; + /* Set 5445 port if device type is iWARP(No IB) */ + if (ib_dev->node_type != RDMA_NODE_IB_CA) + smb_direct_port = SMB_DIRECT_PORT_IWARP; + if (!ib_dev->ops.get_netdev || !rdma_frwr_is_supported(&ib_dev->attrs)) return 0; @@ -2086,7 +2095,7 @@ int ksmbd_rdma_init(void) if (!smb_direct_wq) return -ENOMEM; - ret = smb_direct_listen(SMB_DIRECT_PORT); + ret = smb_direct_listen(smb_direct_port); if (ret) { destroy_workqueue(smb_direct_wq); smb_direct_wq = NULL; --- a/fs/ksmbd/transport_rdma.h +++ b/fs/ksmbd/transport_rdma.h @@ -7,8 +7,6 @@ #ifndef __KSMBD_TRANSPORT_RDMA_H__ #define __KSMBD_TRANSPORT_RDMA_H__ -#define SMB_DIRECT_PORT 5445 - #define SMBD_DEFAULT_IOSIZE (8 * 1024 * 1024) #define SMBD_MIN_IOSIZE (512 * 1024) #define SMBD_MAX_IOSIZE (16 * 1024 * 1024) Patches currently in stable-queue which might be from kroah.com@xxxxxxxxxxxxxxx are queue-5.15/ksmbd-remove-unused-parameter-from-smb2_get_name.patch queue-5.15/ksmbd-smbd-handle-multiple-buffer-descriptors.patch queue-5.15/ksmbd-add-mnt_want_write-to-ksmbd-vfs-functions.patch queue-5.15/ksmbd-delete-an-invalid-argument-description-in-smb2_populate_readdir_entry.patch queue-5.15/ksmbd-remove-smb2_buf_length-in-smb2_transform_hdr.patch queue-5.15/ksmbd-fix-smb2_set_info_file-kernel-doc-comment.patch queue-5.15/ksmbd-remove-unused-fields-from-ksmbd_file-struct-definition.patch queue-5.15/ksmbd-set-445-port-to-smbdirect-port-by-default.patch queue-5.15/ksmbd-use-ksmbd_req_buf_next-in-ksmbd_verify_smb_message.patch queue-5.15/ksmbd-set-both-ipv4-and-ipv6-in-fsctl_query_network_interface_info.patch queue-5.15/ksmbd-reduce-descriptor-size-if-remaining-bytes-is-less-than-request-size.patch queue-5.15/ksmbd-fix-smb2_get_name-kernel-doc-comment.patch queue-5.15/ksmbd-register-ksmbd-ib-client-with-ib_register_client.patch queue-5.15/ksmbd-smbd-fix-missing-client-s-memory-region-invalidation.patch queue-5.15/ksmbd-fix-parameter-name-and-comment-mismatch.patch queue-5.15/ksmbd-smbd-call-rdma_accept-under-cm-handler.patch queue-5.15/ksmdb-use-cmd-helper-variable-in-smb2_get_ksmbd_tcon.patch queue-5.15/ksmbd-smbd-change-the-default-maximum-read-write-receive-size.patch queue-5.15/ksmbd-smbd-remove-useless-license-text-when-spdx-license-identifier-is-already-used.patch queue-5.15/ksmbd-check-the-validation-of-pdu_size-in-ksmbd_conn_handler_loop.patch queue-5.15/ksmbd-fix-buffer_check_err-kernel-doc-comment.patch queue-5.15/ksmbd-remove-redundant-flush_workqueue-calls.patch queue-5.15/ksmbd-smbd-create-mr-pool.patch queue-5.15/ksmbd-remove-smb2_buf_length-in-smb2_hdr.patch queue-5.15/ksmbd-remove-md4-leftovers.patch queue-5.15/ksmbd-add-smb-direct-shutdown.patch