* [PATCH 4/5] BNX2I - Task management ABORT TASK fixes
@ 2009-12-07 19:40 Anil Veerabhadrappa
2009-12-10 2:44 ` Mike Christie
0 siblings, 1 reply; 2+ messages in thread
From: Anil Veerabhadrappa @ 2009-12-07 19:40 UTC (permalink / raw)
To: James.Bottomley; +Cc: linux-scsi, open-iscsi, michaelc, mchan, poswald
* Due to typo error driver was failing TMF Abort Task request
when ctask->sc != NULL. Fixed code to fail TMF ABORT Task
request only when ctask->sc == NULL
* Clear age component (19 most significant bits) of reference ITT
carried in iSCSI TMF PDU. Age component is internal to initiator
side and only lower bits of ITT as defined by ISCSI_ITT_MASK is
is sent on wire
* Retrieve LUN directly from the ref_sc and update SQ wqe as per
chip HSI (Host Software Interface) specification
Signed-off-by: Anil Veerabhadrappa <anilgv@broadcom.com>
---
drivers/scsi/bnx2i/bnx2i_hwi.c | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
index 57f4ca9..af350b2 100644
--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
@@ -384,6 +384,7 @@ int bnx2i_send_iscsi_tmf(struct bnx2i_conn *bnx2i_conn,
struct bnx2i_cmd *bnx2i_cmd;
struct bnx2i_tmf_request *tmfabort_wqe;
u32 dword;
+ u32 scsi_lun[2];
bnx2i_cmd = (struct bnx2i_cmd *)mtask->dd_data;
tmfabort_hdr = (struct iscsi_tm *)mtask->hdr;
@@ -394,27 +395,35 @@ int bnx2i_send_iscsi_tmf(struct bnx2i_conn *bnx2i_conn,
tmfabort_wqe->op_attr = 0;
tmfabort_wqe->op_attr =
ISCSI_TMF_REQUEST_ALWAYS_ONE | ISCSI_TM_FUNC_ABORT_TASK;
- tmfabort_wqe->lun[0] = be32_to_cpu(tmfabort_hdr->lun[0]);
- tmfabort_wqe->lun[1] = be32_to_cpu(tmfabort_hdr->lun[1]);
tmfabort_wqe->itt = (mtask->itt | (ISCSI_TASK_TYPE_MPATH << 14));
tmfabort_wqe->reserved2 = 0;
tmfabort_wqe->cmd_sn = be32_to_cpu(tmfabort_hdr->cmdsn);
ctask = iscsi_itt_to_task(conn, tmfabort_hdr->rtt);
- if (!ctask || ctask->sc)
+ if (!ctask || !ctask->sc)
/*
* the iscsi layer must have completed the cmd while this
* was starting up.
+ *
+ * Note: In the case of a SCSI cmd timeout, the task's sc
+ * is still active; hence ctask->sc != 0
+ * In this case, the task must be aborted
*/
return 0;
+
ref_sc = ctask->sc;
+ /* Retrieve LUN directly from the ref_sc */
+ int_to_scsilun(ref_sc->device->lun, (struct scsi_lun *) scsi_lun);
+ tmfabort_wqe->lun[0] = be32_to_cpu(scsi_lun[0]);
+ tmfabort_wqe->lun[1] = be32_to_cpu(scsi_lun[1]);
+
if (ref_sc->sc_data_direction == DMA_TO_DEVICE)
dword = (ISCSI_TASK_TYPE_WRITE << ISCSI_CMD_REQUEST_TYPE_SHIFT);
else
dword = (ISCSI_TASK_TYPE_READ << ISCSI_CMD_REQUEST_TYPE_SHIFT);
- tmfabort_wqe->ref_itt = (dword | tmfabort_hdr->rtt);
+ tmfabort_wqe->ref_itt = (dword | (tmfabort_hdr->rtt & ISCSI_ITT_MASK));
tmfabort_wqe->ref_cmd_sn = be32_to_cpu(tmfabort_hdr->refcmdsn);
tmfabort_wqe->bd_list_addr_lo = (u32) bnx2i_conn->hba->mp_bd_dma;
--
1.6.5.1
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH 4/5] BNX2I - Task management ABORT TASK fixes
2009-12-07 19:40 [PATCH 4/5] BNX2I - Task management ABORT TASK fixes Anil Veerabhadrappa
@ 2009-12-10 2:44 ` Mike Christie
0 siblings, 0 replies; 2+ messages in thread
From: Mike Christie @ 2009-12-10 2:44 UTC (permalink / raw)
To: Anil Veerabhadrappa
Cc: James.Bottomley-l3A5Bk7waGM, linux-scsi-u79uwXL29TY76Z2rM5mHXA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw, mchan-dY08KVG/lbpWk0Htik3J/w,
poswald-Et1tbQHTxzrQT0dZR+AlfA
Anil Veerabhadrappa wrote:
> * Due to typo error driver was failing TMF Abort Task request
> when ctask->sc != NULL. Fixed code to fail TMF ABORT Task
> request only when ctask->sc == NULL
> * Clear age component (19 most significant bits) of reference ITT
> carried in iSCSI TMF PDU. Age component is internal to initiator
> side and only lower bits of ITT as defined by ISCSI_ITT_MASK is
> is sent on wire
> * Retrieve LUN directly from the ref_sc and update SQ wqe as per
> chip HSI (Host Software Interface) specification
>
> Signed-off-by: Anil Veerabhadrappa <anilgv-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
Looks ok
Reviewed-by: Mike Christie <michaelc-hcNo3dDEHLuVc3sceRu5cw@public.gmane.org>
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at http://groups.google.com/group/open-iscsi?hl=en.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-12-10 2:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-07 19:40 [PATCH 4/5] BNX2I - Task management ABORT TASK fixes Anil Veerabhadrappa
2009-12-10 2:44 ` Mike Christie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox