linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / scsi / qla2xxx / qla_iocb.c
index c5b3c61..6544b6d 100644 (file)
@@ -15,7 +15,6 @@ static inline uint16_t qla2x00_get_cmd_direction(struct scsi_cmnd *cmd);
 static inline cont_entry_t *qla2x00_prep_cont_type0_iocb(scsi_qla_host_t *);
 static inline cont_a64_entry_t *qla2x00_prep_cont_type1_iocb(scsi_qla_host_t *);
 static request_t *qla2x00_req_pkt(scsi_qla_host_t *ha);
-static void qla2x00_isp_cmd(scsi_qla_host_t *ha);
 
 /**
  * qla2x00_get_cmd_direction() - Determine control_flag data direction.
@@ -409,6 +408,7 @@ qla2x00_start_scsi(srb_t *sp)
                ha->request_ring_ptr++;
 
        sp->flags |= SRB_DMA_VALID;
+       sp->state = SRB_ACTIVE_STATE;
 
        /* Set chip new ring index. */
        WRT_REG_WORD(ISP_REQ_Q_IN(ha, reg), ha->req_ring_index);
@@ -466,12 +466,11 @@ __qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
        mrk->entry_type = MARKER_TYPE;
        mrk->modifier = type;
        if (type != MK_SYNC_ALL) {
-               if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
+               if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) {
                        mrk24 = (struct mrk_entry_24xx *) mrk;
                        mrk24->nport_handle = cpu_to_le16(loop_id);
                        mrk24->lun[1] = LSB(lun);
                        mrk24->lun[2] = MSB(lun);
-                       host_to_fcp_swap(mrk24->lun, sizeof(mrk24->lun));
                } else {
                        SET_TARGET_ID(ha, mrk->target, loop_id);
                        mrk->lun = cpu_to_le16(lun);
@@ -520,7 +519,7 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
        for (timer = HZ; timer; timer--) {
                if ((req_cnt + 2) >= ha->req_q_cnt) {
                        /* Calculate number of free request entries. */
-                       if (IS_QLA24XX(ha) || IS_QLA54XX(ha))
+                       if (IS_QLA24XX(ha) || IS_QLA25XX(ha))
                                cnt = (uint16_t)RD_REG_DWORD(
                                    &reg->isp24.req_q_out);
                        else
@@ -576,7 +575,7 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
  *
  * Note: The caller must hold the hardware lock before calling this routine.
  */
-static void
+void
 qla2x00_isp_cmd(scsi_qla_host_t *ha)
 {
        device_reg_t __iomem *reg = ha->iobase;
@@ -594,7 +593,7 @@ qla2x00_isp_cmd(scsi_qla_host_t *ha)
                ha->request_ring_ptr++;
 
        /* Set chip new ring index. */
-       if (IS_QLA24XX(ha) || IS_QLA54XX(ha)) {
+       if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) {
                WRT_REG_DWORD(&reg->isp24.req_q_in, ha->req_ring_index);
                RD_REG_DWORD_RELAXED(&reg->isp24.req_q_in);
        } else {
@@ -839,6 +838,7 @@ qla24xx_start_scsi(srb_t *sp)
                ha->request_ring_ptr++;
 
        sp->flags |= SRB_DMA_VALID;
+       sp->state = SRB_ACTIVE_STATE;
 
        /* Set chip new ring index. */
        WRT_REG_DWORD(&reg->req_q_in, ha->req_ring_index);