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 hare@xxxxxxx +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N�g GF: Markus Rex, HRB 16746 (AG N�g)
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;