* [PATCH v1 0/3] Ibmvscsis fixes and code cleanup @ 2016-08-31 16:28 Bryant G. Ly 2016-08-31 16:28 ` [PATCH v1 1/3] Ibmvscsis: Properly deregister target sessions Bryant G. Ly ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: Bryant G. Ly @ 2016-08-31 16:28 UTC (permalink / raw) To: nab, dan.carpenter Cc: mikecyr, James.Bottomley, tyreld, brking, seroyer, linux-scsi, target-devel, martin.petersen, Bryant G. Ly Here are some small fixes and cleanups for Ibmvscsis Target Driver. The only one of significance is the first one where there is a possibility of a kernel crash due to inproper deregister of target session since we didn't sync up work and didn't deregister_configfs. Bryant G. Ly (3): Ibmvscsis: Properly deregister target sessions Ibmvscsis: Code cleanup of print statements Ibmvscsis: Fixed a bug reported by Dan Carpenter drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) -- 2.5.4 (Apple Git-61) ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v1 1/3] Ibmvscsis: Properly deregister target sessions 2016-08-31 16:28 [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Bryant G. Ly @ 2016-08-31 16:28 ` Bryant G. Ly 2016-08-31 16:29 ` [PATCH v1 2/3] Ibmvscsis: Code cleanup of print statements Bryant G. Ly ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: Bryant G. Ly @ 2016-08-31 16:28 UTC (permalink / raw) To: nab, dan.carpenter Cc: mikecyr, James.Bottomley, tyreld, brking, seroyer, linux-scsi, target-devel, martin.petersen, Bryant G. Ly The driver currently doesn't properly deregisters target sessions completely, so this will address that. Signed-off-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com> Signed-off-by: Michael Cyr <mikecyr@linux.vnet.ibm.com> --- drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c index b29fef9..a515cdd 100644 --- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c @@ -1934,6 +1934,8 @@ static int ibmvscsis_drop_nexus(struct ibmvscsis_tport *tport) /* * Release the SCSI I_T Nexus to the emulated ibmvscsis Target Port */ + target_wait_for_sess_cmds(se_sess); + transport_deregister_session_configfs(se_sess); transport_deregister_session(se_sess); tport->ibmv_nexus = NULL; kfree(nexus); -- 2.5.4 (Apple Git-61) ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 2/3] Ibmvscsis: Code cleanup of print statements 2016-08-31 16:28 [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Bryant G. Ly 2016-08-31 16:28 ` [PATCH v1 1/3] Ibmvscsis: Properly deregister target sessions Bryant G. Ly @ 2016-08-31 16:29 ` Bryant G. Ly 2016-08-31 16:29 ` [PATCH v1 3/3] Ibmvscsis: Fixed a bug reported by Dan Carpenter Bryant G. Ly 2016-09-02 10:53 ` [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Martin K. Petersen 3 siblings, 0 replies; 5+ messages in thread From: Bryant G. Ly @ 2016-08-31 16:29 UTC (permalink / raw) To: nab, dan.carpenter Cc: mikecyr, James.Bottomley, tyreld, brking, seroyer, linux-scsi, target-devel, martin.petersen, Bryant G. Ly Signed-off-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com> Signed-off-by: Michael Cyr <mikecyr@linux.vnet.ibm.com> --- drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c index a515cdd..d4c67b9 100644 --- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c @@ -1606,8 +1606,6 @@ static void ibmvscsis_send_messages(struct scsi_info *vscsi) if (!(vscsi->flags & RESPONSE_Q_DOWN)) { list_for_each_entry_safe(cmd, nxt, &vscsi->waiting_rsp, list) { - pr_debug("send_messages cmd %p\n", cmd); - iue = cmd->iue; crq->valid = VALID_CMD_RESP_EL; @@ -2556,10 +2554,6 @@ static void ibmvscsis_parse_cmd(struct scsi_info *vscsi, srp->lun.scsi_lun[0] &= 0x3f; - pr_debug("calling submit_cmd, se_cmd %p, lun 0x%llx, cdb 0x%x, attr:%d\n", - &cmd->se_cmd, scsilun_to_int(&srp->lun), (int)srp->cdb[0], - attr); - rc = target_submit_cmd(&cmd->se_cmd, nexus->se_sess, srp->cdb, cmd->sense_buf, scsilun_to_int(&srp->lun), data_len, attr, dir, 0); @@ -3144,8 +3138,6 @@ static int ibmvscsis_rdma(struct ibmvscsis_cmd *cmd, struct scatterlist *sg, long tx_len; long rc = 0; - pr_debug("rdma: dir %d, bytes 0x%x\n", dir, bytes); - if (bytes == 0) return 0; @@ -3197,9 +3189,6 @@ static int ibmvscsis_rdma(struct ibmvscsis_cmd *cmd, struct scatterlist *sg, /* write to client */ struct srp_cmd *srp = (struct srp_cmd *)iue->sbuf->buf; - if (!READ_CMD(srp->cdb)) - print_hex_dump_bytes(" data:", DUMP_PREFIX_NONE, - sg_virt(sgp), buf_len); /* The h_copy_rdma will cause phyp, running in another * partition, to read memory, so we need to make sure * the data has been written out, hence these syncs. @@ -3324,12 +3313,9 @@ cmd_work: rc = ibmvscsis_trans_event(vscsi, crq); } else if (vscsi->flags & TRANS_EVENT) { /* - * if a tranport event has occurred leave + * if a transport event has occurred leave * everything but transport events on the queue - */ - pr_debug("handle_crq, ignoring\n"); - - /* + * * need to decrement the queue index so we can * look at the elment again */ @@ -3695,8 +3681,6 @@ static void ibmvscsis_release_cmd(struct se_cmd *se_cmd) se_cmd); struct scsi_info *vscsi = cmd->adapter; - pr_debug("release_cmd %p, flags %d\n", se_cmd, cmd->flags); - spin_lock_bh(&vscsi->intr_lock); /* Remove from active_q */ list_del(&cmd->list); @@ -3717,9 +3701,6 @@ static int ibmvscsis_write_pending(struct se_cmd *se_cmd) struct iu_entry *iue = cmd->iue; int rc; - pr_debug("write_pending, se_cmd %p, length 0x%x\n", - se_cmd, se_cmd->data_length); - rc = srp_transfer_data(cmd, &vio_iu(iue)->srp.cmd, ibmvscsis_rdma, 1, 1); if (rc) { @@ -3758,9 +3739,6 @@ static int ibmvscsis_queue_data_in(struct se_cmd *se_cmd) uint len = 0; int rc; - pr_debug("queue_data_in, se_cmd %p, length 0x%x\n", - se_cmd, se_cmd->data_length); - rc = srp_transfer_data(cmd, &vio_iu(iue)->srp.cmd, ibmvscsis_rdma, 1, 1); if (rc) { -- 2.5.4 (Apple Git-61) ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v1 3/3] Ibmvscsis: Fixed a bug reported by Dan Carpenter 2016-08-31 16:28 [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Bryant G. Ly 2016-08-31 16:28 ` [PATCH v1 1/3] Ibmvscsis: Properly deregister target sessions Bryant G. Ly 2016-08-31 16:29 ` [PATCH v1 2/3] Ibmvscsis: Code cleanup of print statements Bryant G. Ly @ 2016-08-31 16:29 ` Bryant G. Ly 2016-09-02 10:53 ` [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Martin K. Petersen 3 siblings, 0 replies; 5+ messages in thread From: Bryant G. Ly @ 2016-08-31 16:29 UTC (permalink / raw) To: nab, dan.carpenter Cc: mikecyr, James.Bottomley, tyreld, brking, seroyer, linux-scsi, target-devel, martin.petersen, Bryant G. Ly SUPPORTED_FORMATS is 1 << 1 so it's never zero. Signed-off-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com> Signed-off-by: Michael Cyr <mikecyr@linux.vnet.ibm.com> --- drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c index d4c67b9..35455af 100644 --- a/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +++ b/drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c @@ -1978,7 +1978,7 @@ static long ibmvscsis_srp_login(struct scsi_info *vscsi, reason = SRP_LOGIN_REJ_MULTI_CHANNEL_UNSUPPORTED; else if (fmt->buffers & (~SUPPORTED_FORMATS)) reason = SRP_LOGIN_REJ_UNSUPPORTED_DESCRIPTOR_FMT; - else if ((fmt->buffers | SUPPORTED_FORMATS) == 0) + else if ((fmt->buffers & SUPPORTED_FORMATS) == 0) reason = SRP_LOGIN_REJ_UNSUPPORTED_DESCRIPTOR_FMT; if (vscsi->state == SRP_PROCESSING) -- 2.5.4 (Apple Git-61) ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v1 0/3] Ibmvscsis fixes and code cleanup 2016-08-31 16:28 [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Bryant G. Ly ` (2 preceding siblings ...) 2016-08-31 16:29 ` [PATCH v1 3/3] Ibmvscsis: Fixed a bug reported by Dan Carpenter Bryant G. Ly @ 2016-09-02 10:53 ` Martin K. Petersen 3 siblings, 0 replies; 5+ messages in thread From: Martin K. Petersen @ 2016-09-02 10:53 UTC (permalink / raw) To: Bryant G. Ly Cc: nab, dan.carpenter, mikecyr, James.Bottomley, tyreld, brking, seroyer, linux-scsi, target-devel, martin.petersen >>>>> "Bryant" == Bryant G Ly <bryantly@linux.vnet.ibm.com> writes: Bryant, Bryant> Here are some small fixes and cleanups for Ibmvscsis Target Bryant> Driver. The only one of significance is the first one where Bryant> there is a possibility of a kernel crash due to inproper Bryant> deregister of target session since we didn't sync up work and Bryant> didn't deregister_configfs. Applied to 4.9/scsi-queue. I did patch 2 by hand. It didn't apply to neither my tree, nor Nic's. -- Martin K. Petersen Oracle Linux Engineering ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-09-02 10:53 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-08-31 16:28 [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Bryant G. Ly 2016-08-31 16:28 ` [PATCH v1 1/3] Ibmvscsis: Properly deregister target sessions Bryant G. Ly 2016-08-31 16:29 ` [PATCH v1 2/3] Ibmvscsis: Code cleanup of print statements Bryant G. Ly 2016-08-31 16:29 ` [PATCH v1 3/3] Ibmvscsis: Fixed a bug reported by Dan Carpenter Bryant G. Ly 2016-09-02 10:53 ` [PATCH v1 0/3] Ibmvscsis fixes and code cleanup Martin K. Petersen
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).