Hi James,

appearently the lpfc driver is sligtly confused about the meaning
of the 'scmd->tag' value. It should rather inspect the correct
flags to detect the proper SCSI Tag value.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                   zSeries & Storage
[EMAIL PROTECTED]                             +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N�rnberg
GF: Markus Rex, HRB 16746 (AG N�rnberg)
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index cd67493..a1cf99a 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -693,17 +693,10 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct 
lpfc_scsi_buf *lpfc_cmd,
        memcpy(&fcp_cmnd->fcpCdb[0], scsi_cmnd->cmnd, 16);
 
        if (scsi_cmnd->device->tagged_supported) {
-               switch (scsi_cmnd->tag) {
-               case HEAD_OF_QUEUE_TAG:
-                       fcp_cmnd->fcpCntl1 = HEAD_OF_Q;
-                       break;
-               case ORDERED_QUEUE_TAG:
+               if (scsi_cmnd->device->ordered_tags)
                        fcp_cmnd->fcpCntl1 = ORDERED_Q;
-                       break;
-               default:
+               else
                        fcp_cmnd->fcpCntl1 = SIMPLE_Q;
-                       break;
-               }
        } else
                fcp_cmnd->fcpCntl1 = 0;
 

Reply via email to