(RESENDING) On Tue, 2015-09-08 at 06:14 -0700, Roland Dreier wrote: > From: Roland Dreier <roland@xxxxxxxxxxxxxxx> > > > Umm, the patch doesn't fix the problem. Do you see the issue? > > Sorry, didn't have my test setup over the (long) weekend, so sent a > proposed fix blind. In fact, doing that again to unblock you: I think > the issue is that we "cleaned up" the working patch by moving > atomic_inc_return() into a pr_debug(), which means the increment > doesn't happen unless you have debug prints enabled. > > I will run this on my setup today but in the meantime here it is. > Nic, assuming *this* fixes Sagi's test, can you fold this in? > > - Roland > > ---------- 8< ---------- 8< ---------- > > From: Roland Dreier <roland@xxxxxxxxxxxxxxx> > Date: Mon, 7 Sep 2015 09:08:37 -0700 > Subject: [PATCH] fixup! target: Drop iSCSI use of mutex around max_cmd_sn > increment > > --- > drivers/target/iscsi/iscsi_target_device.c | 7 +++++-- > drivers/target/iscsi/iscsi_target_nego.c | 2 -- > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/target/iscsi/iscsi_target_device.c b/drivers/target/iscsi/iscsi_target_device.c > index 07d2ef67dba6..0382fa24b53b 100644 > --- a/drivers/target/iscsi/iscsi_target_device.c > +++ b/drivers/target/iscsi/iscsi_target_device.c > @@ -47,16 +47,19 @@ void iscsit_determine_maxcmdsn(struct iscsi_session *sess) > * core_set_queue_depth_for_node(). > */ > sess->cmdsn_window = se_nacl->queue_depth; > - atomic_set(&sess->max_cmd_sn, (u32) atomic_read(&sess->max_cmd_sn) + se_nacl->queue_depth - 1); > + atomic_add(se_nacl->queue_depth - 1, &sess->max_cmd_sn); > } > > void iscsit_increment_maxcmdsn(struct iscsi_cmd *cmd, struct iscsi_session *sess) > { > + u32 max_cmd_sn; > + > if (cmd->immediate_cmd || cmd->maxcmdsn_inc) > return; > > cmd->maxcmdsn_inc = 1; > > - pr_debug("Updated MaxCmdSN to 0x%08x\n", atomic_inc_return(&sess->max_cmd_sn)); > + max_cmd_sn = atomic_inc_return(&sess->max_cmd_sn); > + pr_debug("Updated MaxCmdSN to 0x%08x\n", max_cmd_sn); > } > EXPORT_SYMBOL(iscsit_increment_maxcmdsn); > diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_nego.c > index 74d041e815f4..4d08afe71e67 100644 > --- a/drivers/target/iscsi/iscsi_target_nego.c > +++ b/drivers/target/iscsi/iscsi_target_nego.c > @@ -366,8 +366,6 @@ static int iscsi_target_do_tx_login_io(struct iscsi_conn *conn, struct iscsi_log > return -1; > > login->rsp_length = 0; > - login_rsp->exp_cmdsn = cpu_to_be32(login_rsp->exp_cmdsn); > - login_rsp->max_cmdsn = cpu_to_be32(login_rsp->max_cmdsn); > > return 0; > } Applied as a incremental patch to target-pending/for-next code. Thanks Roland & Sagi. -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html