tree d9bd0a9261a2e9e37a3c8149c66439e9cf8b01bd
parent 507caac75e86bd041c5462e5e988fb7138e21d79
author [EMAIL PROTECTED] <[EMAIL PROTECTED]> Wed, 10 Aug 2005 23:02:45 -0400
committer James Bottomley <[EMAIL PROTECTED](none)> Fri, 12 Aug 2005 22:08:13 
-0500

[SCSI] lpfc driver 8.0.30 : fix iocb reuse initialization

IOCB BDE not getting fully initialized during reuse

Symptoms: Driver gets Status 3 and Reason 0x13 on IOCB completions.

Cause: The IOCB bpl.bdeSize and bdeFlags are not getting initialized on reuse.

Fix: Reinitialize these fields in prep_dma each time an IOCB is used.

Signed-off-by: James Smart <[EMAIL PROTECTED]>
Signed-off-by: James Bottomley <[EMAIL PROTECTED]>

 drivers/scsi/lpfc/lpfc_scsi.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -238,6 +238,8 @@ lpfc_scsi_prep_dma_buf(struct lpfc_hba *
                bpl->tus.f.bdeSize = scsi_cmnd->request_bufflen;
                if (datadir == DMA_TO_DEVICE)
                        bpl->tus.f.bdeFlags = 0;
+               else
+                       bpl->tus.f.bdeFlags = BUFF_USE_RCV;
                bpl->tus.w = le32_to_cpu(bpl->tus.w);
                num_bde = 1;
                bpl++;
@@ -245,8 +247,11 @@ lpfc_scsi_prep_dma_buf(struct lpfc_hba *
 
        /*
         * Finish initializing those IOCB fields that are dependent on the
-        * scsi_cmnd request_buffer
+        * scsi_cmnd request_buffer.  Note that the bdeSize is explicitly
+        * reinitialized since all iocb memory resources are used many times
+        * for transmit, receive, and continuation bpl's.
         */
+       iocb_cmd->un.fcpi64.bdl.bdeSize = (2 * sizeof (struct ulp_bde64));
        iocb_cmd->un.fcpi64.bdl.bdeSize +=
                (num_bde * sizeof (struct ulp_bde64));
        iocb_cmd->ulpBdeCount = 1;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to