mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 12:00:22 +09:00
ksmbd: set 445 port to smbdirect port by default
[ Upstream commit cb097b3dd5 ]
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@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
178ecc3257
commit
8a49ab3e59
@@ -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_request(struct rdma_cm_id *new_cm_id)
|
||||
|
||||
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(struct ib_device *ib_dev)
|
||||
{
|
||||
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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user