]> err.no Git - linux-2.6/blobdiff - drivers/scsi/qla2xxx/qla_iocb.c
Merge branch 'linus' into timers/nohz
[linux-2.6] / drivers / scsi / qla2xxx / qla_iocb.c
index 49208c6994f17ea1e489359f84fcd0a428658dd2..5489d5024673a326b5345f5545151a7dab37a533 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * QLogic Fibre Channel HBA Driver
- * Copyright (c)  2003-2005 QLogic Corporation
+ * Copyright (c)  2003-2008 QLogic Corporation
  *
  * See LICENSE.qla2xxx for copyright and licensing details.
  */
@@ -11,9 +11,6 @@
 
 #include <scsi/scsi_tcq.h>
 
-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);
 
@@ -308,7 +305,7 @@ qla2x00_start_scsi(srb_t *sp)
                handle++;
                if (handle == MAX_OUTSTANDING_COMMANDS)
                        handle = 1;
-               if (ha->outstanding_cmds[handle] == 0)
+               if (!ha->outstanding_cmds[handle])
                        break;
        }
        if (index == MAX_OUTSTANDING_COMMANDS)
@@ -326,7 +323,7 @@ qla2x00_start_scsi(srb_t *sp)
        tot_dsds = nseg;
 
        /* Calculate the number of request entries needed. */
-       req_cnt = ha->isp_ops.calc_req_entries(tot_dsds);
+       req_cnt = ha->isp_ops->calc_req_entries(tot_dsds);
        if (ha->req_q_cnt < (req_cnt + 2)) {
                cnt = RD_REG_WORD_RELAXED(ISP_REQ_Q_OUT(ha, reg));
                if (ha->req_ring_index < cnt)
@@ -364,7 +361,7 @@ qla2x00_start_scsi(srb_t *sp)
        cmd_pkt->byte_count = cpu_to_le32((uint32_t)scsi_bufflen(cmd));
 
        /* Build IOCB segments */
-       ha->isp_ops.build_iocbs(sp, cmd_pkt, tot_dsds);
+       ha->isp_ops->build_iocbs(sp, cmd_pkt, tot_dsds);
 
        /* Set total data segment count. */
        cmd_pkt->entry_count = (uint8_t)req_cnt;
@@ -525,7 +522,7 @@ qla2x00_req_pkt(scsi_qla_host_t *ha)
 
                /* Check for pending interrupts. */
                /* During init we issue marker directly */
-               if (!ha->marker_needed)
+               if (!ha->marker_needed && !ha->flags.init_done)
                        qla2x00_poll(ha);
 
                spin_lock_irq(&ha->hardware_lock);
@@ -711,7 +708,7 @@ qla24xx_start_scsi(srb_t *sp)
                handle++;
                if (handle == MAX_OUTSTANDING_COMMANDS)
                        handle = 1;
-               if (ha->outstanding_cmds[handle] == 0)
+               if (!ha->outstanding_cmds[handle])
                        break;
        }
        if (index == MAX_OUTSTANDING_COMMANDS)