* [PATCH 0/4] IB/iser cleanups and fixes for 5.11
@ 2021-01-11 14:57 Max Gurtovoy
2021-01-11 14:57 ` [PATCH 1/4] IB/iser: remove unneeded semicolons Max Gurtovoy
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Max Gurtovoy @ 2021-01-11 14:57 UTC (permalink / raw)
To: linux-rdma, dledford, jgg, leonro, sagi
Cc: oren, nitzanc, sergeygo, ngottlieb, Max Gurtovoy
Hi Jason/Leon/Sagi,
This series introduce some minor code conventions cleanups and 1 module
param fix that can cause the driver to fail in connection establishment
(if one will set max_sectors = 0).
Please consider this for the next 5.11 PR or for 5.12 merge window.
Max Gurtovoy (4):
IB/iser: remove unneeded semicolons
IB/iser: protect iscsi_max_lun module param using callback
IB/iser: enforce iser_max_sectors to be greater than 0
IB/iser: simplify prot_caps setting
drivers/infiniband/ulp/iser/iscsi_iser.c | 53 ++++++++++++++++-------
drivers/infiniband/ulp/iser/iser_memory.c | 3 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 2 +-
3 files changed, 39 insertions(+), 19 deletions(-)
--
2.25.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/4] IB/iser: remove unneeded semicolons
2021-01-11 14:57 [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Max Gurtovoy
@ 2021-01-11 14:57 ` Max Gurtovoy
2021-01-14 0:00 ` Sagi Grimberg
2021-01-11 14:57 ` [PATCH 2/4] IB/iser: protect iscsi_max_lun module param using callback Max Gurtovoy
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Max Gurtovoy @ 2021-01-11 14:57 UTC (permalink / raw)
To: linux-rdma, dledford, jgg, leonro, sagi
Cc: oren, nitzanc, sergeygo, ngottlieb, Max Gurtovoy, Israel Rukshin
No need to add semicolon after closing bracket.
Reviewed-by: Israel Rukshin <israelr@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
---
drivers/infiniband/ulp/iser/iser_memory.c | 3 +--
drivers/infiniband/ulp/iser/iser_verbs.c | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index d4e057fac219..afec40da9b58 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -169,7 +169,7 @@ iser_set_dif_domain(struct scsi_cmnd *sc, struct ib_sig_domain *domain)
domain->sig.dif.ref_escape = true;
if (sc->prot_flags & SCSI_PROT_REF_INCREMENT)
domain->sig.dif.ref_remap = true;
-};
+}
static int
iser_set_sig_attrs(struct scsi_cmnd *sc, struct ib_sig_attrs *sig_attrs)
@@ -390,4 +390,3 @@ int iser_reg_mem_fastreg(struct iscsi_iser_task *task,
return err;
}
-
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 2bd18b006893..136f6c4492e0 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -685,7 +685,7 @@ static void iser_cleanup_handler(struct rdma_cm_id *cma_id,
iser_disconnected_handler(cma_id);
iser_free_ib_conn_res(iser_conn, destroy);
complete(&iser_conn->ib_completion);
-};
+}
static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
{
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/4] IB/iser: protect iscsi_max_lun module param using callback
2021-01-11 14:57 [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Max Gurtovoy
2021-01-11 14:57 ` [PATCH 1/4] IB/iser: remove unneeded semicolons Max Gurtovoy
@ 2021-01-11 14:57 ` Max Gurtovoy
2021-01-14 0:00 ` Sagi Grimberg
2021-01-11 14:57 ` [PATCH 3/4] IB/iser: enforce iser_max_sectors to be greater than 0 Max Gurtovoy
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Max Gurtovoy @ 2021-01-11 14:57 UTC (permalink / raw)
To: linux-rdma, dledford, jgg, leonro, sagi
Cc: oren, nitzanc, sergeygo, ngottlieb, Max Gurtovoy, Israel Rukshin
Remove the check from the module_init function.
Reviewed-by: Israel Rukshin <israelr@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
---
drivers/infiniband/ulp/iser/iscsi_iser.c | 27 ++++++++++++++++++------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 4792b9bf400f..906f52873d63 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -89,9 +89,15 @@ int iser_debug_level = 0;
module_param_named(debug_level, iser_debug_level, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug_level, "Enable debug tracing if > 0 (default:disabled)");
+static int iscsi_iser_set(const char *val, const struct kernel_param *kp);
+static const struct kernel_param_ops iscsi_iser_size_ops = {
+ .set = iscsi_iser_set,
+ .get = param_get_uint,
+};
+
static unsigned int iscsi_max_lun = 512;
-module_param_named(max_lun, iscsi_max_lun, uint, S_IRUGO);
-MODULE_PARM_DESC(max_lun, "Max LUNs to allow per session (default:512");
+module_param_cb(max_lun, &iscsi_iser_size_ops, &iscsi_max_lun, S_IRUGO);
+MODULE_PARM_DESC(max_lun, "Max LUNs to allow per session, should > 0 (default:512)");
unsigned int iser_max_sectors = ISER_DEF_MAX_SECTORS;
module_param_named(max_sectors, iser_max_sectors, uint, S_IRUGO | S_IWUSR);
@@ -110,6 +116,18 @@ int iser_pi_guard;
module_param_named(pi_guard, iser_pi_guard, int, S_IRUGO);
MODULE_PARM_DESC(pi_guard, "T10-PI guard_type [deprecated]");
+static int iscsi_iser_set(const char *val, const struct kernel_param *kp)
+{
+ int ret;
+ unsigned int n = 0;
+
+ ret = kstrtouint(val, 10, &n);
+ if (ret != 0 || n == 0)
+ return -EINVAL;
+
+ return param_set_uint(val, kp);
+}
+
/*
* iscsi_iser_recv() - Process a successful recv completion
* @conn: iscsi connection
@@ -1009,11 +1027,6 @@ static int __init iser_init(void)
iser_dbg("Starting iSER datamover...\n");
- if (iscsi_max_lun < 1) {
- iser_err("Invalid max_lun value of %u\n", iscsi_max_lun);
- return -EINVAL;
- }
-
memset(&ig, 0, sizeof(struct iser_global));
ig.desc_cache = kmem_cache_create("iser_descriptors",
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/4] IB/iser: enforce iser_max_sectors to be greater than 0
2021-01-11 14:57 [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Max Gurtovoy
2021-01-11 14:57 ` [PATCH 1/4] IB/iser: remove unneeded semicolons Max Gurtovoy
2021-01-11 14:57 ` [PATCH 2/4] IB/iser: protect iscsi_max_lun module param using callback Max Gurtovoy
@ 2021-01-11 14:57 ` Max Gurtovoy
2021-01-14 0:02 ` Sagi Grimberg
2021-01-11 14:57 ` [PATCH 4/4] IB/iser: simplify prot_caps setting Max Gurtovoy
2021-01-20 0:10 ` [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Jason Gunthorpe
4 siblings, 1 reply; 10+ messages in thread
From: Max Gurtovoy @ 2021-01-11 14:57 UTC (permalink / raw)
To: linux-rdma, dledford, jgg, leonro, sagi
Cc: oren, nitzanc, sergeygo, ngottlieb, Max Gurtovoy, Israel Rukshin
A value of 0 will casue the driver to fail establishing a valid
connection to remote target.
The following can be seen in the log in this case:
"
iser: iser_connect: connecting to: 1.1.1.88:3260
iser: iser_cma_handler: address resolved (0): status 0 conn 00000000090aa4de id 00000000167d3b5a
iser: iser_cma_handler: route resolved (2): status 0 conn 00000000090aa4de id 00000000167d3b5a
iser: iscsi_iser_ep_poll: iser conn 00000000090aa4de rc = 0
iser: iser_create_ib_conn_res: setting conn 00000000090aa4de cma_id 00000000167d3b5a qp 00000000efa80660 max_send_wr 4619
iser_cma_handler: established (9): status 0 conn 00000000090aa4de id 00000000167d3b5a
iser: iser_connected_handler: remote qpn:1c7 my qpn:1c6
iser: iser_connected_handler: conn 00000000090aa4de: negotiated remote invalidation
iser: iscsi_iser_ep_poll: iser conn 00000000090aa4de rc = 1
scsi host10: iSCSI Initiator over iSER
mlx5_core 0000:07:00.0: mlx5_cmd_check:769:(pid 616473): CREATE_MKEY(0x200) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0x3bf6f)
iser: iser_create_fastreg_desc: Failed to allocate ib_fast_reg_mr err=-22
iser: iser_alloc_rx_descriptors: failed allocating rx descriptors / data buffers
iser: iscsi_iser_ep_disconnect: ep 00000000d2040785 iser conn 00000000090aa4de
iser: iser_conn_terminate: iser_conn 00000000090aa4de state 3
iser: iser_free_ib_conn_res: freeing conn 00000000090aa4de cma_id 00000000167d3b5a qp 00000000efa80660
iser: iser_device_try_release: device 00000000dc871b1b refcount 0
"
Reviewed-by: Israel Rukshin <israelr@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
---
drivers/infiniband/ulp/iser/iscsi_iser.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 906f52873d63..fcfdeb5dea42 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -100,8 +100,9 @@ module_param_cb(max_lun, &iscsi_iser_size_ops, &iscsi_max_lun, S_IRUGO);
MODULE_PARM_DESC(max_lun, "Max LUNs to allow per session, should > 0 (default:512)");
unsigned int iser_max_sectors = ISER_DEF_MAX_SECTORS;
-module_param_named(max_sectors, iser_max_sectors, uint, S_IRUGO | S_IWUSR);
-MODULE_PARM_DESC(max_sectors, "Max number of sectors in a single scsi command (default:1024");
+module_param_cb(max_sectors, &iscsi_iser_size_ops, &iser_max_sectors,
+ S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(max_sectors, "Max number of sectors in a single scsi command, should > 0 (default:1024)");
bool iser_always_reg = true;
module_param_named(always_register, iser_always_reg, bool, S_IRUGO);
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/4] IB/iser: simplify prot_caps setting
2021-01-11 14:57 [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Max Gurtovoy
` (2 preceding siblings ...)
2021-01-11 14:57 ` [PATCH 3/4] IB/iser: enforce iser_max_sectors to be greater than 0 Max Gurtovoy
@ 2021-01-11 14:57 ` Max Gurtovoy
2021-01-14 0:03 ` Sagi Grimberg
2021-01-20 0:10 ` [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Jason Gunthorpe
4 siblings, 1 reply; 10+ messages in thread
From: Max Gurtovoy @ 2021-01-11 14:57 UTC (permalink / raw)
To: linux-rdma, dledford, jgg, leonro, sagi
Cc: oren, nitzanc, sergeygo, ngottlieb, Max Gurtovoy, Israel Rukshin
Reduce the number of instructions made for setting protection caps. No
need to do bitwise OR with 0 since we can zero the return value in the
beginning of the function.
Reviewed-by: Israel Rukshin <israelr@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
---
drivers/infiniband/ulp/iser/iscsi_iser.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index fcfdeb5dea42..8fcaa1136f2c 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -590,13 +590,20 @@ iscsi_iser_session_destroy(struct iscsi_cls_session *cls_session)
static inline unsigned int
iser_dif_prot_caps(int prot_caps)
{
- return ((prot_caps & IB_PROT_T10DIF_TYPE_1) ?
- SHOST_DIF_TYPE1_PROTECTION | SHOST_DIX_TYPE0_PROTECTION |
- SHOST_DIX_TYPE1_PROTECTION : 0) |
- ((prot_caps & IB_PROT_T10DIF_TYPE_2) ?
- SHOST_DIF_TYPE2_PROTECTION | SHOST_DIX_TYPE2_PROTECTION : 0) |
- ((prot_caps & IB_PROT_T10DIF_TYPE_3) ?
- SHOST_DIF_TYPE3_PROTECTION | SHOST_DIX_TYPE3_PROTECTION : 0);
+ int ret = 0;
+
+ if (prot_caps & IB_PROT_T10DIF_TYPE_1)
+ ret |= SHOST_DIF_TYPE1_PROTECTION |
+ SHOST_DIX_TYPE0_PROTECTION |
+ SHOST_DIX_TYPE1_PROTECTION;
+ if (prot_caps & IB_PROT_T10DIF_TYPE_2)
+ ret |= SHOST_DIF_TYPE2_PROTECTION |
+ SHOST_DIX_TYPE2_PROTECTION;
+ if (prot_caps & IB_PROT_T10DIF_TYPE_3)
+ ret |= SHOST_DIF_TYPE3_PROTECTION |
+ SHOST_DIX_TYPE3_PROTECTION;
+
+ return ret;
}
/**
--
2.25.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/4] IB/iser: remove unneeded semicolons
2021-01-11 14:57 ` [PATCH 1/4] IB/iser: remove unneeded semicolons Max Gurtovoy
@ 2021-01-14 0:00 ` Sagi Grimberg
0 siblings, 0 replies; 10+ messages in thread
From: Sagi Grimberg @ 2021-01-14 0:00 UTC (permalink / raw)
To: Max Gurtovoy, linux-rdma, dledford, jgg, leonro
Cc: oren, nitzanc, sergeygo, ngottlieb, Israel Rukshin
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/4] IB/iser: protect iscsi_max_lun module param using callback
2021-01-11 14:57 ` [PATCH 2/4] IB/iser: protect iscsi_max_lun module param using callback Max Gurtovoy
@ 2021-01-14 0:00 ` Sagi Grimberg
0 siblings, 0 replies; 10+ messages in thread
From: Sagi Grimberg @ 2021-01-14 0:00 UTC (permalink / raw)
To: Max Gurtovoy, linux-rdma, dledford, jgg, leonro
Cc: oren, nitzanc, sergeygo, ngottlieb, Israel Rukshin
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] IB/iser: enforce iser_max_sectors to be greater than 0
2021-01-11 14:57 ` [PATCH 3/4] IB/iser: enforce iser_max_sectors to be greater than 0 Max Gurtovoy
@ 2021-01-14 0:02 ` Sagi Grimberg
0 siblings, 0 replies; 10+ messages in thread
From: Sagi Grimberg @ 2021-01-14 0:02 UTC (permalink / raw)
To: Max Gurtovoy, linux-rdma, dledford, jgg, leonro
Cc: oren, nitzanc, sergeygo, ngottlieb, Israel Rukshin
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 4/4] IB/iser: simplify prot_caps setting
2021-01-11 14:57 ` [PATCH 4/4] IB/iser: simplify prot_caps setting Max Gurtovoy
@ 2021-01-14 0:03 ` Sagi Grimberg
0 siblings, 0 replies; 10+ messages in thread
From: Sagi Grimberg @ 2021-01-14 0:03 UTC (permalink / raw)
To: Max Gurtovoy, linux-rdma, dledford, jgg, leonro
Cc: oren, nitzanc, sergeygo, ngottlieb, Israel Rukshin
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/4] IB/iser cleanups and fixes for 5.11
2021-01-11 14:57 [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Max Gurtovoy
` (3 preceding siblings ...)
2021-01-11 14:57 ` [PATCH 4/4] IB/iser: simplify prot_caps setting Max Gurtovoy
@ 2021-01-20 0:10 ` Jason Gunthorpe
4 siblings, 0 replies; 10+ messages in thread
From: Jason Gunthorpe @ 2021-01-20 0:10 UTC (permalink / raw)
To: Max Gurtovoy
Cc: linux-rdma, dledford, leonro, sagi, oren, nitzanc, sergeygo, ngottlieb
On Mon, Jan 11, 2021 at 02:57:50PM +0000, Max Gurtovoy wrote:
> Hi Jason/Leon/Sagi,
> This series introduce some minor code conventions cleanups and 1 module
> param fix that can cause the driver to fail in connection establishment
> (if one will set max_sectors = 0).
>
> Please consider this for the next 5.11 PR or for 5.12 merge window.
>
> Max Gurtovoy (4):
> IB/iser: remove unneeded semicolons
> IB/iser: protect iscsi_max_lun module param using callback
> IB/iser: enforce iser_max_sectors to be greater than 0
> IB/iser: simplify prot_caps setting
Applied to for-next, thanks
Jason
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-01-20 0:11 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-11 14:57 [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Max Gurtovoy
2021-01-11 14:57 ` [PATCH 1/4] IB/iser: remove unneeded semicolons Max Gurtovoy
2021-01-14 0:00 ` Sagi Grimberg
2021-01-11 14:57 ` [PATCH 2/4] IB/iser: protect iscsi_max_lun module param using callback Max Gurtovoy
2021-01-14 0:00 ` Sagi Grimberg
2021-01-11 14:57 ` [PATCH 3/4] IB/iser: enforce iser_max_sectors to be greater than 0 Max Gurtovoy
2021-01-14 0:02 ` Sagi Grimberg
2021-01-11 14:57 ` [PATCH 4/4] IB/iser: simplify prot_caps setting Max Gurtovoy
2021-01-14 0:03 ` Sagi Grimberg
2021-01-20 0:10 ` [PATCH 0/4] IB/iser cleanups and fixes for 5.11 Jason Gunthorpe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).