drivers/scsi/qla4xxx/ql4_dbg.h | 59 ++--
drivers/scsi/qla4xxx/ql4_def.h | 11
drivers/scsi/qla4xxx/ql4_glbl.h | 10
- drivers/scsi/qla4xxx/ql4_init.c | 172 +++++++-----
+ drivers/scsi/qla4xxx/ql4_init.c | 166 +++++++-----
drivers/scsi/qla4xxx/ql4_inline.h | 143 ++++++++++
- drivers/scsi/qla4xxx/ql4_iocb.c | 161 +----------
- drivers/scsi/qla4xxx/ql4_isr.c | 36 +-
- drivers/scsi/qla4xxx/ql4_mbx.c | 11
- drivers/scsi/qla4xxx/ql4_os.c | 499 ++++++++++++++++++++-----------------
+ drivers/scsi/qla4xxx/ql4_iocb.c | 161 +-----------
+ drivers/scsi/qla4xxx/ql4_isr.c | 31 +-
+ drivers/scsi/qla4xxx/ql4_mbx.c | 7
+ drivers/scsi/qla4xxx/ql4_os.c | 495 ++++++++++++++++++++-----------------
drivers/scsi/qla4xxx/ql4_os.h | 125 +++++++++
drivers/scsi/qla4xxx/ql4_version.h | 3
- 12 files changed, 736 insertions(+), 530 deletions(-)
+ 12 files changed, 727 insertions(+), 520 deletions(-)
--- a/drivers/scsi/qla4xxx/ql4_dbg.c
+++ b/drivers/scsi/qla4xxx/ql4_dbg.c
static void ql4xxx_set_mac_number(struct scsi_qla_host *ha)
{
uint32_t value;
-@@ -52,15 +50,14 @@ static void ql4xxx_set_mac_number(struct
- }
-
- /**
-- * qla4xxx_free_ddb - deallocate ddb
-+ * qla4xxx_free_ddb - deallocate ddb
- * @ha: pointer to host adapter structure.
- * @ddb_entry: pointer to device database entry
- *
+@@ -59,8 +57,7 @@ static void ql4xxx_set_mac_number(struct
* This routine deallocates and unlinks the specified ddb_entry from the
* adapter's
**/
"failed\n", __func__, fw_ddb_index));
goto exit_ddb_list;
}
-@@ -488,7 +485,7 @@ static int qla4xxx_build_ddb_list(struct
- ddb_entry->connection_id = conn_id;
- qla4xxx_fill_ddb(ddb_entry, fw_ddb_entry);
- ddb_entry->fw_ddb_device_state = ddb_state;
--
-+
- if (ddb_entry->fw_ddb_device_state == DDB_DS_SESSION_ACTIVE) {
- atomic_set(&ddb_entry->state, DDB_STATE_ONLINE);
- dev_info(&ha->pdev->dev,
@@ -695,6 +692,8 @@ static int qla4xxx_initialize_ddb_list(s
qla4xxx_flush_AENS(ha);
if (ql4xxx_lock_drvr_wait(ha) != QLA_SUCCESS)
return QLA_ERROR;
}
-@@ -1083,7 +1081,7 @@ static int qla4xxx_start_firmware(struct
- * @renew_ddb_list: Indicates what to do with the adapter's ddb list
- * after adapter recovery has completed.
- * 0=preserve ddb list, 1=destroy and rebuild ddb list
-- *
-+ *
- * This routine parforms all of the steps necessary to initialize the adapter.
- *
- **/
@@ -1119,12 +1117,12 @@ int qla4xxx_initialize_adapter(struct sc
* followed by 0x8014 aen" to trigger the tgt discovery process.
*/
}
- if (!found)
-- ddb_entry = qla4xxx_alloc_ddb(ha, fw_ddb_index);
++ if (!found) {
+ ddb_entry = qla4xxx_alloc_ddb(ha, fw_ddb_index);
- else if (ddb_entry->fw_ddb_index != fw_ddb_index) {
- /* Target has been bound to a new fw_ddb_index */
- qla4xxx_free_ddb(ha, ddb_entry);
-+ if (!found) {
- ddb_entry = qla4xxx_alloc_ddb(ha, fw_ddb_index);
+- ddb_entry = qla4xxx_alloc_ddb(ha, fw_ddb_index);
- }
- if (ddb_entry == NULL) {
- DEBUG6(dev_info(&ha->pdev->dev, "%s conn startddb_entry 0x%p"
- " sess 0x%p conn 0x%p\n",
-- __func__, ddb_entry, ddb_entry->sess, ddb_entry->conn));
+- __func__, ddb_entry, ddb_entry->sess, ddb_entry->conn));
-
- qla4xxx_conn_start(ddb_entry->conn);
-
/**
* qla4xxx_status_entry - processes status IOCBs
-@@ -59,8 +60,8 @@ static void qla4xxx_status_entry(struct
+@@ -59,8 +60,8 @@ static void qla4xxx_status_entry(struct
break;
}
if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_UNDER) {
cmd->underflow)) {
cmd->result = DID_ERROR << 16;
break;
-@@ -144,7 +145,7 @@ static void qla4xxx_status_entry(struct
+@@ -144,7 +145,7 @@ static void qla4xxx_status_entry(struct
break;
}
/*
* If there is scsi_status, it takes precedense over
-@@ -184,7 +185,7 @@ static void qla4xxx_status_entry(struct
+@@ -184,7 +185,7 @@ static void qla4xxx_status_entry(struct
if ((sts_entry->iscsiFlags &
ISCSI_FLAG_RESIDUAL_UNDER) == 0) {
cmd->result = DID_BUS_BUSY << 16;
cmd->underflow) {
/*
* Handle mid-layer underflow???
-@@ -203,7 +204,7 @@ static void qla4xxx_status_entry(struct
+@@ -203,7 +204,7 @@ static void qla4xxx_status_entry(struct
"resid = 0x%x, compstat = 0x%x\n",
ha->host_no, cmd->device->channel,
cmd->device->id, cmd->device->lun,
break;
case MBOX_ASTS_HEARTBEAT:
-@@ -470,9 +471,9 @@ static void qla4xxx_isr_decode_mailbox(s
- mbox_stat2 = readl(&ha->reg->mailbox[2]);
- mbox_stat3 = readl(&ha->reg->mailbox[3]);
-
-- if ((mbox_stat3 == 5) && (mbox_stat2 == 3))
-+ if ((mbox_stat3 == 5) && (mbox_stat2 == 3))
- set_bit(DPC_GET_DHCP_IP_ADDR, &ha->dpc_flags);
-- else if ((mbox_stat3 == 2) && (mbox_stat2 == 5))
-+ else if ((mbox_stat3 == 2) && (mbox_stat2 == 5))
- set_bit(DPC_RESET_HA, &ha->dpc_flags);
- break;
-
-@@ -591,10 +592,10 @@ void qla4xxx_interrupt_service_routine(s
+@@ -591,8 +592,9 @@ void qla4xxx_interrupt_service_routine(s
* qla4xxx_intr_handler - hardware interrupt handler.
* @irq: Unused
* @dev_id: Pointer to host adapter structure
-irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id)
+QL_DECLARE_INTR_HANDLER(qla4xxx_intr_handler, irq, dev_id, regs)
{
--
struct scsi_qla_host *ha;
uint32_t intr_status;
- unsigned long flags = 0;
-@@ -625,8 +626,7 @@ irqreturn_t qla4xxx_intr_handler(int irq
+@@ -624,8 +626,7 @@ irqreturn_t qla4xxx_intr_handler(int irq
intr_status = readl(&ha->reg->ctrl_status);
if ((intr_status &
if (reqs_count == 0)
ha->spurious_int_count++;
break;
-@@ -662,6 +662,8 @@ irqreturn_t qla4xxx_intr_handler(int irq
+@@ -661,6 +662,8 @@ irqreturn_t qla4xxx_intr_handler(int irq
break;
} else if (intr_status & CSR_SCSI_RESET_INTR) {
clear_bit(AF_ONLINE, &ha->flags);
mutex_lock(&ha->mbox_sem);
clear_bit(AF_MBOX_COMMAND, &ha->flags);
mutex_unlock(&ha->mbox_sem);
-@@ -851,8 +855,8 @@ int qla4xxx_get_flash(struct scsi_qla_ho
- * qla4xxx_get_fw_version - gets firmware version
- * @ha: Pointer to host adapter structure.
- *
-- * Retrieves the firmware version on HBA. In QLA4010, mailboxes 2 & 3 may
-- * hold an address for data. Make sure that we write 0 to those mailboxes,
-+ * Retrieves the firmware version on HBA. In QLA4010, mailboxes 2 & 3 may
-+ * hold an address for data. Make sure that we write 0 to those mailboxes,
- * if unused.
- **/
- int qla4xxx_get_fw_version(struct scsi_qla_host * ha)
@@ -882,8 +886,7 @@ int qla4xxx_get_fw_version(struct scsi_q
return QLA_SUCCESS;
}
ddb_entry->ha = ha;
ddb_entry->sess = sess;
return ddb_entry;
-@@ -371,9 +389,9 @@ void qla4xxx_mark_device_missing(struct
+@@ -371,9 +389,9 @@ void qla4xxx_mark_device_missing(struct
}
static struct srb* qla4xxx_get_new_srb(struct scsi_qla_host *ha,
spin_lock_irqsave(&ha->hardware_lock, flags);
writel(set_rmask(CSR_NET_RESET_INTR), &ha->reg->ctrl_status);
readl(&ha->reg->ctrl_status);
-@@ -881,14 +890,13 @@ static void qla4xxx_flush_active_srbs(st
- * qla4xxx_recover_adapter - recovers adapter after a fatal error
- * @ha: Pointer to host adapter structure.
- **/
--static int qla4xxx_recover_adapter(struct scsi_qla_host *ha)
-+static int qla4xxx_recover_adapter(struct scsi_qla_host *ha)
- {
- int status;
+@@ -887,8 +896,7 @@ static int qla4xxx_recover_adapter(struc
/* Stall incoming I/O until we are done */
clear_bit(AF_ONLINE, &ha->flags);
qla4xxx_recover_adapter(ha);
if (test_bit(DPC_RESET_HA_INTR, &ha->dpc_flags)) {
-@@ -1025,14 +1034,15 @@ static void qla4xxx_do_dpc(struct work_s
+@@ -1025,10 +1034,11 @@ static void qla4xxx_do_dpc(struct work_s
break;
msleep(1000);
}
qla4xxx_flush_active_srbs(ha);
if (ql4xxx_lock_drvr_wait(ha) == QLA_SUCCESS) {
qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS);
-- status = qla4xxx_initialize_adapter(ha,
-+ status = qla4xxx_initialize_adapter(ha,
- PRESERVE_DDB_LIST);
- }
- clear_bit(DPC_RESET_HA_INTR, &ha->dpc_flags);
@@ -1049,13 +1059,42 @@ static void qla4xxx_do_dpc(struct work_s
if (test_and_clear_bit(DPC_GET_DHCP_IP_ADDR, &ha->dpc_flags))
qla4xxx_get_dhcp_ip_address(ha);
qla4xxx_relogin_device(ha, ddb_entry);
/*
-@@ -1092,7 +1131,7 @@ static void qla4xxx_free_adapter(struct
+@@ -1092,7 +1131,7 @@ static void qla4xxx_free_adapter(struct
/* Issue Soft Reset to put firmware in unknown state */
if (ql4xxx_lock_drvr_wait(ha) == QLA_SUCCESS)
ret = SUCCESS;
-@@ -1635,7 +1689,7 @@ static int qla4xxx_eh_host_reset(struct
+@@ -1635,7 +1689,7 @@ static int qla4xxx_eh_host_reset(struct
}
dev_info(&ha->pdev->dev, "HOST RESET %s.\n",