Commit 354d6b21 authored by Andrew Vasquez's avatar Andrew Vasquez Committed by James Bottomley

[SCSI] remove some dead code in qla2xxx

Original from: Christoph Hellwig <hch@lst.de>

Modified and
Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent b86fff73
...@@ -1063,8 +1063,7 @@ qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd) ...@@ -1063,8 +1063,7 @@ qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd)
return; return;
printk(" sp flags=0x%x\n", sp->flags); printk(" sp flags=0x%x\n", sp->flags);
printk(" r_start=0x%lx, u_start=0x%lx, f_start=0x%lx, state=%d\n", printk(" state=%d\n", sp->state);
sp->r_start, sp->u_start, sp->f_start, sp->state);
} }
#if defined(QL_DEBUG_ROUTINES) #if defined(QL_DEBUG_ROUTINES)
......
...@@ -252,31 +252,12 @@ typedef struct srb { ...@@ -252,31 +252,12 @@ typedef struct srb {
/* Request state */ /* Request state */
uint16_t state; uint16_t state;
/* Timing counts. */
unsigned long e_start; /* Start of extend timeout */
unsigned long r_start; /* Start of request */
unsigned long u_start; /* When sent to RISC */
unsigned long f_start; /* When placed in FO queue*/
/* Single transfer DMA context */ /* Single transfer DMA context */
dma_addr_t dma_handle; dma_addr_t dma_handle;
uint32_t request_sense_length; uint32_t request_sense_length;
uint8_t *request_sense_ptr; uint8_t *request_sense_ptr;
int ext_history;
/* Suspend delay */
int delay;
/* Raw completion info for use by failover ? */
uint8_t fo_retry_cnt; /* Retry count this request */
uint8_t err_id; /* error id */
#define SRB_ERR_PORT 1 /* Request failed -- "port down" */
#define SRB_ERR_LOOP 2 /* Request failed -- "loop down" */
#define SRB_ERR_DEVICE 3 /* Request failed -- "device error" */
#define SRB_ERR_OTHER 4
/* SRB magic number */ /* SRB magic number */
uint16_t magic; uint16_t magic;
#define SRB_MAGIC 0x10CB #define SRB_MAGIC 0x10CB
...@@ -2082,23 +2063,8 @@ typedef struct scsi_qla_host { ...@@ -2082,23 +2063,8 @@ typedef struct scsi_qla_host {
uint32_t current_outstanding_cmd; uint32_t current_outstanding_cmd;
srb_t *status_srb; /* Status continuation entry. */ srb_t *status_srb; /* Status continuation entry. */
unsigned long last_irq_cpu; /* cpu where we got our last irq */
uint16_t revision; uint16_t revision;
uint8_t ports; uint8_t ports;
u_long actthreads;
u_long ipreq_cnt;
u_long qthreads;
uint32_t total_isr_cnt; /* Interrupt count */
uint32_t total_isp_aborts; /* controller err cnt */
uint32_t total_lip_cnt; /* LIP cnt */
uint32_t total_dev_errs; /* device error cnt */
uint32_t total_ios; /* IO cnt */
uint64_t total_bytes; /* xfr byte cnt */
uint32_t total_mbx_timeout; /* mailbox timeout cnt */
uint32_t total_loop_resync; /* loop resyn cnt */
uint32_t dropped_frame_error_cnt;
/* ISP configuration data. */ /* ISP configuration data. */
uint16_t loop_id; /* Host adapter loop id */ uint16_t loop_id; /* Host adapter loop id */
...@@ -2124,8 +2090,6 @@ typedef struct scsi_qla_host { ...@@ -2124,8 +2090,6 @@ typedef struct scsi_qla_host {
#define P2P_LOOP 3 #define P2P_LOOP 3
uint8_t marker_needed; uint8_t marker_needed;
uint8_t sns_retry_cnt;
uint8_t mem_err;
uint8_t interrupts_on; uint8_t interrupts_on;
...@@ -2138,16 +2102,11 @@ typedef struct scsi_qla_host { ...@@ -2138,16 +2102,11 @@ typedef struct scsi_qla_host {
uint16_t nvram_base; uint16_t nvram_base;
uint16_t loop_reset_delay; uint16_t loop_reset_delay;
uint16_t minimum_timeout;
uint8_t retry_count; uint8_t retry_count;
uint8_t login_timeout; uint8_t login_timeout;
uint16_t r_a_tov; uint16_t r_a_tov;
int port_down_retry_count; int port_down_retry_count;
uint8_t loop_down_timeout;
uint8_t mbx_count; uint8_t mbx_count;
uint16_t max_probe_luns;
uint16_t max_luns;
uint16_t max_targets;
uint16_t last_loop_id; uint16_t last_loop_id;
uint32_t login_retry_count; uint32_t login_retry_count;
...@@ -2181,7 +2140,6 @@ typedef struct scsi_qla_host { ...@@ -2181,7 +2140,6 @@ typedef struct scsi_qla_host {
uint8_t dpc_active; /* DPC routine is active */ uint8_t dpc_active; /* DPC routine is active */
/* Timeout timers. */ /* Timeout timers. */
uint8_t queue_restart_timer;
uint8_t loop_down_abort_time; /* port down timer */ uint8_t loop_down_abort_time; /* port down timer */
atomic_t loop_down_timer; /* loop down timer */ atomic_t loop_down_timer; /* loop down timer */
uint8_t link_down_timeout; /* link down timeout */ uint8_t link_down_timeout; /* link down timeout */
...@@ -2230,18 +2188,6 @@ typedef struct scsi_qla_host { ...@@ -2230,18 +2188,6 @@ typedef struct scsi_qla_host {
mbx_cmd_t mc; mbx_cmd_t mc;
uint8_t *cmdline;
uint32_t failover_type;
uint32_t failback_delay;
unsigned long cfg_flags;
#define CFG_ACTIVE 0 /* CFG during a failover, event update, or ioctl */
#define CFG_FAILOVER 1 /* CFG during path change */
uint32_t binding_type;
#define BIND_BY_PORT_NAME 0
#define BIND_BY_PORT_ID 1
/* Basic firmware related information. */ /* Basic firmware related information. */
struct qla_board_info *brd_info; struct qla_board_info *brd_info;
uint16_t fw_major_version; uint16_t fw_major_version;
...@@ -2274,12 +2220,6 @@ typedef struct scsi_qla_host { ...@@ -2274,12 +2220,6 @@ typedef struct scsi_qla_host {
uint8_t nvram_version; uint8_t nvram_version;
uint32_t isp_abort_cnt; uint32_t isp_abort_cnt;
/* Adapter I/O statistics for failover */
uint64_t IosRequested;
uint64_t BytesRequested;
uint64_t IosExecuted;
uint64_t BytesExecuted;
/* Needed for BEACON */ /* Needed for BEACON */
uint16_t beacon_blink_led; uint16_t beacon_blink_led;
uint16_t beacon_green_on; uint16_t beacon_green_on;
......
...@@ -53,27 +53,13 @@ extern void qla2x00_reg_remote_port(scsi_qla_host_t *, fc_port_t *); ...@@ -53,27 +53,13 @@ extern void qla2x00_reg_remote_port(scsi_qla_host_t *, fc_port_t *);
*/ */
extern char qla2x00_version_str[]; extern char qla2x00_version_str[];
extern int num_hosts;
extern int apiHBAInstance;
extern struct _qla2x00stats qla2x00_stats;
extern int ql2xretrycount;
extern int ql2xlogintimeout; extern int ql2xlogintimeout;
extern int qlport_down_retry; extern int qlport_down_retry;
extern int ql2xmaxqdepth;
extern int displayConfig;
extern int ql2xplogiabsentdevice; extern int ql2xplogiabsentdevice;
extern int ql2xenablezio; extern int ql2xenablezio;
extern int ql2xintrdelaytimer; extern int ql2xintrdelaytimer;
extern int ql2xloginretrycount; extern int ql2xloginretrycount;
extern int ConfigRequired;
extern int Bind;
extern int ql2xsuspendcount;
#if defined(MODULE)
extern char *ql2xopts;
#endif
extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *); extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);
extern char *qla2x00_get_fw_version_str(struct scsi_qla_host *, char *); extern char *qla2x00_get_fw_version_str(struct scsi_qla_host *, char *);
......
...@@ -85,9 +85,7 @@ qla2x00_initialize_adapter(scsi_qla_host_t *ha) ...@@ -85,9 +85,7 @@ qla2x00_initialize_adapter(scsi_qla_host_t *ha)
atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME); atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
atomic_set(&ha->loop_state, LOOP_DOWN); atomic_set(&ha->loop_state, LOOP_DOWN);
ha->device_flags = 0; ha->device_flags = 0;
ha->sns_retry_cnt = 0;
ha->dpc_flags = 0; ha->dpc_flags = 0;
ha->failback_delay = 0;
ha->flags.management_server_logged_in = 0; ha->flags.management_server_logged_in = 0;
ha->marker_needed = 0; ha->marker_needed = 0;
ha->mbx_flags = 0; ha->mbx_flags = 0;
...@@ -171,8 +169,6 @@ qla2x00_initialize_adapter(scsi_qla_host_t *ha) ...@@ -171,8 +169,6 @@ qla2x00_initialize_adapter(scsi_qla_host_t *ha)
if (wait_time == 0) if (wait_time == 0)
rval = QLA_FUNCTION_FAILED; rval = QLA_FUNCTION_FAILED;
if (ha->mem_err)
restart_risc = 1;
} else if (ha->device_flags & DFLG_NO_CABLE) } else if (ha->device_flags & DFLG_NO_CABLE)
/* If no cable, then all is good. */ /* If no cable, then all is good. */
rval = QLA_SUCCESS; rval = QLA_SUCCESS;
...@@ -1410,13 +1406,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha) ...@@ -1410,13 +1406,8 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
/* Set minimum RATOV to 200 tenths of a second. */ /* Set minimum RATOV to 200 tenths of a second. */
ha->r_a_tov = 200; ha->r_a_tov = 200;
ha->minimum_timeout =
(ha->login_timeout * ha->retry_count) + nv->port_down_retry_count;
ha->loop_reset_delay = nv->reset_delay; ha->loop_reset_delay = nv->reset_delay;
/* Will get the value from NVRAM. */
ha->loop_down_timeout = LOOP_DOWN_TIMEOUT;
/* Link Down Timeout = 0: /* Link Down Timeout = 0:
* *
* When Port Down timer expires we will start returning * When Port Down timer expires we will start returning
...@@ -1429,18 +1420,13 @@ qla2x00_nvram_config(scsi_qla_host_t *ha) ...@@ -1429,18 +1420,13 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
*/ */
if (nv->link_down_timeout == 0) { if (nv->link_down_timeout == 0) {
ha->loop_down_abort_time = ha->loop_down_abort_time =
(LOOP_DOWN_TIME - ha->loop_down_timeout); (LOOP_DOWN_TIME - LOOP_DOWN_TIMEOUT);
} else { } else {
ha->link_down_timeout = nv->link_down_timeout; ha->link_down_timeout = nv->link_down_timeout;
ha->loop_down_abort_time = ha->loop_down_abort_time =
(LOOP_DOWN_TIME - ha->link_down_timeout); (LOOP_DOWN_TIME - ha->link_down_timeout);
} }
ha->max_luns = MAX_LUNS;
ha->max_probe_luns = le16_to_cpu(nv->max_luns_per_target);
if (ha->max_probe_luns == 0)
ha->max_probe_luns = MIN_LUNS;
/* /*
* Need enough time to try and get the port back. * Need enough time to try and get the port back.
*/ */
...@@ -1457,16 +1443,6 @@ qla2x00_nvram_config(scsi_qla_host_t *ha) ...@@ -1457,16 +1443,6 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
if (ql2xloginretrycount) if (ql2xloginretrycount)
ha->login_retry_count = ql2xloginretrycount; ha->login_retry_count = ql2xloginretrycount;
ha->binding_type = Bind;
if (ha->binding_type != BIND_BY_PORT_NAME &&
ha->binding_type != BIND_BY_PORT_ID) {
qla_printk(KERN_WARNING, ha,
"Invalid binding type specified (%d), "
"defaulting to BIND_BY_PORT_NAME!!!\n", ha->binding_type);
ha->binding_type = BIND_BY_PORT_NAME;
}
icb->lun_enables = __constant_cpu_to_le16(0); icb->lun_enables = __constant_cpu_to_le16(0);
icb->command_resource_count = 0; icb->command_resource_count = 0;
icb->immediate_notify_resource_count = 0; icb->immediate_notify_resource_count = 0;
...@@ -1578,7 +1554,6 @@ qla2x00_configure_loop(scsi_qla_host_t *ha) ...@@ -1578,7 +1554,6 @@ qla2x00_configure_loop(scsi_qla_host_t *ha)
*/ */
clear_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags); clear_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
clear_bit(RSCN_UPDATE, &ha->dpc_flags); clear_bit(RSCN_UPDATE, &ha->dpc_flags);
ha->mem_err = 0 ;
/* Determine what we need to do */ /* Determine what we need to do */
if (ha->current_topology == ISP_CFG_FL && if (ha->current_topology == ISP_CFG_FL &&
...@@ -2707,7 +2682,6 @@ qla2x00_loop_resync(scsi_qla_host_t *ha) ...@@ -2707,7 +2682,6 @@ qla2x00_loop_resync(scsi_qla_host_t *ha)
rval = QLA_SUCCESS; rval = QLA_SUCCESS;
atomic_set(&ha->loop_state, LOOP_UPDATE); atomic_set(&ha->loop_state, LOOP_UPDATE);
qla2x00_stats.loop_resync++;
clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags); clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
if (ha->flags.online) { if (ha->flags.online) {
if (!(rval = qla2x00_fw_ready(ha))) { if (!(rval = qla2x00_fw_ready(ha))) {
...@@ -2786,9 +2760,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha) ...@@ -2786,9 +2760,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
if (ha->flags.online) { if (ha->flags.online) {
ha->flags.online = 0; ha->flags.online = 0;
clear_bit(ISP_ABORT_NEEDED, &ha->dpc_flags); clear_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
qla2x00_stats.ispAbort++;
ha->total_isp_aborts++; /* used by ioctl */
ha->sns_retry_cnt = 0;
qla_printk(KERN_INFO, ha, qla_printk(KERN_INFO, ha,
"Performing ISP error recovery - ha= %p.\n", ha); "Performing ISP error recovery - ha= %p.\n", ha);
...@@ -2810,8 +2781,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha) ...@@ -2810,8 +2781,6 @@ qla2x00_abort_isp(scsi_qla_host_t *ha)
sp = ha->outstanding_cmds[cnt]; sp = ha->outstanding_cmds[cnt];
if (sp) { if (sp) {
ha->outstanding_cmds[cnt] = NULL; ha->outstanding_cmds[cnt] = NULL;
if (ha->actthreads)
ha->actthreads--;
sp->flags = 0; sp->flags = 0;
sp->cmd->result = DID_RESET << 16; sp->cmd->result = DID_RESET << 16;
sp->cmd->host_scribble = (unsigned char *)NULL; sp->cmd->host_scribble = (unsigned char *)NULL;
......
...@@ -433,11 +433,8 @@ qla2x00_start_scsi(srb_t *sp) ...@@ -433,11 +433,8 @@ qla2x00_start_scsi(srb_t *sp)
} else } else
ha->request_ring_ptr++; ha->request_ring_ptr++;
ha->actthreads++;
ha->total_ios++;
sp->flags |= SRB_DMA_VALID; sp->flags |= SRB_DMA_VALID;
sp->state = SRB_ACTIVE_STATE; sp->state = SRB_ACTIVE_STATE;
sp->u_start = jiffies;
/* Set chip new ring index. */ /* Set chip new ring index. */
WRT_REG_WORD(ISP_REQ_Q_IN(ha, reg), ha->req_ring_index); WRT_REG_WORD(ISP_REQ_Q_IN(ha, reg), ha->req_ring_index);
......
...@@ -91,9 +91,6 @@ qla2100_intr_handler(int irq, void *dev_id, struct pt_regs *regs) ...@@ -91,9 +91,6 @@ qla2100_intr_handler(int irq, void *dev_id, struct pt_regs *regs)
} }
spin_unlock_irqrestore(&ha->hardware_lock, flags); spin_unlock_irqrestore(&ha->hardware_lock, flags);
ha->last_irq_cpu = _smp_processor_id();
ha->total_isr_cnt++;
if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) && if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
(status & MBX_INTERRUPT) && ha->flags.mbox_int) { (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
spin_lock_irqsave(&ha->mbx_reg_lock, flags); spin_lock_irqsave(&ha->mbx_reg_lock, flags);
...@@ -200,9 +197,6 @@ qla2300_intr_handler(int irq, void *dev_id, struct pt_regs *regs) ...@@ -200,9 +197,6 @@ qla2300_intr_handler(int irq, void *dev_id, struct pt_regs *regs)
} }
spin_unlock_irqrestore(&ha->hardware_lock, flags); spin_unlock_irqrestore(&ha->hardware_lock, flags);
ha->last_irq_cpu = _smp_processor_id();
ha->total_isr_cnt++;
if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) && if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
(status & MBX_INTERRUPT) && ha->flags.mbox_int) { (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
spin_lock_irqsave(&ha->mbx_reg_lock, flags); spin_lock_irqsave(&ha->mbx_reg_lock, flags);
...@@ -417,7 +411,6 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint32_t mbx) ...@@ -417,7 +411,6 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint32_t mbx)
/* Update AEN queue. */ /* Update AEN queue. */
qla2x00_enqueue_aen(ha, MBA_LIP_OCCURRED, NULL); qla2x00_enqueue_aen(ha, MBA_LIP_OCCURRED, NULL);
ha->total_lip_cnt++;
break; break;
case MBA_LOOP_UP: /* Loop Up Event */ case MBA_LOOP_UP: /* Loop Up Event */
...@@ -485,7 +478,6 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint32_t mbx) ...@@ -485,7 +478,6 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint32_t mbx)
/* Update AEN queue. */ /* Update AEN queue. */
qla2x00_enqueue_aen(ha, MBA_LIP_RESET, NULL); qla2x00_enqueue_aen(ha, MBA_LIP_RESET, NULL);
ha->total_lip_cnt++;
break; break;
case MBA_POINT_TO_POINT: /* Point-to-Point */ case MBA_POINT_TO_POINT: /* Point-to-Point */
...@@ -695,14 +687,11 @@ qla2x00_process_completed_request(struct scsi_qla_host *ha, uint32_t index) ...@@ -695,14 +687,11 @@ qla2x00_process_completed_request(struct scsi_qla_host *ha, uint32_t index)
/* Free outstanding command slot. */ /* Free outstanding command slot. */
ha->outstanding_cmds[index] = NULL; ha->outstanding_cmds[index] = NULL;
if (ha->actthreads)
ha->actthreads--;
CMD_COMPL_STATUS(sp->cmd) = 0L; CMD_COMPL_STATUS(sp->cmd) = 0L;
CMD_SCSI_STATUS(sp->cmd) = 0L; CMD_SCSI_STATUS(sp->cmd) = 0L;
/* Save ISP completion status */ /* Save ISP completion status */
sp->cmd->result = DID_OK << 16; sp->cmd->result = DID_OK << 16;
sp->fo_retry_cnt = 0;
qla2x00_sp_compl(ha, sp); qla2x00_sp_compl(ha, sp);
} else { } else {
DEBUG2(printk("scsi(%ld): Invalid ISP SCSI completion handle\n", DEBUG2(printk("scsi(%ld): Invalid ISP SCSI completion handle\n",
...@@ -865,9 +854,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha, sts_entry_t *pkt) ...@@ -865,9 +854,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha, sts_entry_t *pkt)
return; return;
} }
if (ha->actthreads)
ha->actthreads--;
comp_status = le16_to_cpu(pkt->comp_status); comp_status = le16_to_cpu(pkt->comp_status);
/* Mask of reserved bits 12-15, before we examine the scsi status */ /* Mask of reserved bits 12-15, before we examine the scsi status */
scsi_status = le16_to_cpu(pkt->scsi_status) & SS_MASK; scsi_status = le16_to_cpu(pkt->scsi_status) & SS_MASK;
...@@ -1026,7 +1012,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha, sts_entry_t *pkt) ...@@ -1026,7 +1012,6 @@ qla2x00_status_entry(scsi_qla_host_t *ha, sts_entry_t *pkt)
cp->request_bufflen)); cp->request_bufflen));
cp->result = DID_BUS_BUSY << 16; cp->result = DID_BUS_BUSY << 16;
ha->dropped_frame_error_cnt++;
break; break;
} }
...@@ -1233,8 +1218,7 @@ qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt) ...@@ -1233,8 +1218,7 @@ qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt)
if (sp) { if (sp) {
/* Free outstanding command slot. */ /* Free outstanding command slot. */
ha->outstanding_cmds[pkt->handle] = NULL; ha->outstanding_cmds[pkt->handle] = NULL;
if (ha->actthreads)
ha->actthreads--;
/* Bad payload or header */ /* Bad payload or header */
if (pkt->entry_status & if (pkt->entry_status &
(RF_INV_E_ORDER | RF_INV_E_COUNT | (RF_INV_E_ORDER | RF_INV_E_COUNT |
......
...@@ -219,10 +219,8 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp) ...@@ -219,10 +219,8 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
ha->flags.mbox_int = 0; ha->flags.mbox_int = 0;
clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags); clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
if (ha->mailbox_out[0] != MBS_COMMAND_COMPLETE) { if (ha->mailbox_out[0] != MBS_COMMAND_COMPLETE)
qla2x00_stats.mboxerr++;
rval = QLA_FUNCTION_FAILED; rval = QLA_FUNCTION_FAILED;
}
/* Load return mailbox registers. */ /* Load return mailbox registers. */
iptr2 = mcp->mb; iptr2 = mcp->mb;
...@@ -249,8 +247,6 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp) ...@@ -249,8 +247,6 @@ qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
qla2x00_dump_regs(ha); qla2x00_dump_regs(ha);
#endif #endif
qla2x00_stats.mboxtout++;
ha->total_mbx_timeout++;
rval = QLA_FUNCTION_TIMEOUT; rval = QLA_FUNCTION_TIMEOUT;
} }
......
...@@ -36,27 +36,12 @@ char qla2x00_version_str[40]; ...@@ -36,27 +36,12 @@ char qla2x00_version_str[40];
/* /*
* SRB allocation cache * SRB allocation cache
*/ */
char srb_cachep_name[16]; static kmem_cache_t *srb_cachep;
kmem_cache_t *srb_cachep;
/*
* Stats for all adpaters.
*/
struct _qla2x00stats qla2x00_stats;
/* /*
* Ioctl related information. * Ioctl related information.
*/ */
int num_hosts; static int num_hosts;
int apiHBAInstance;
/*
* Module parameter information and variables
*/
int ql2xmaxqdepth;
module_param(ql2xmaxqdepth, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(ql2xmaxqdepth,
"Maximum queue depth to report for target devices.");
int ql2xlogintimeout = 20; int ql2xlogintimeout = 20;
module_param(ql2xlogintimeout, int, S_IRUGO|S_IRUSR); module_param(ql2xlogintimeout, int, S_IRUGO|S_IRUSR);
...@@ -69,12 +54,6 @@ MODULE_PARM_DESC(qlport_down_retry, ...@@ -69,12 +54,6 @@ MODULE_PARM_DESC(qlport_down_retry,
"Maximum number of command retries to a port that returns" "Maximum number of command retries to a port that returns"
"a PORT-DOWN status."); "a PORT-DOWN status.");
int ql2xretrycount = 20;
module_param(ql2xretrycount, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(ql2xretrycount,
"Maximum number of mid-layer retries allowed for a command. "
"Default value is 20, ");
int ql2xplogiabsentdevice; int ql2xplogiabsentdevice;
module_param(ql2xplogiabsentdevice, int, S_IRUGO|S_IWUSR); module_param(ql2xplogiabsentdevice, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(ql2xplogiabsentdevice, MODULE_PARM_DESC(ql2xplogiabsentdevice,
...@@ -95,25 +74,6 @@ MODULE_PARM_DESC(ql2xintrdelaytimer, ...@@ -95,25 +74,6 @@ MODULE_PARM_DESC(ql2xintrdelaytimer,
"ZIO: Waiting time for Firmware before it generates an " "ZIO: Waiting time for Firmware before it generates an "
"interrupt to the host to notify completion of request."); "interrupt to the host to notify completion of request.");
int ConfigRequired;
module_param(ConfigRequired, int, S_IRUGO|S_IRUSR);
MODULE_PARM_DESC(ConfigRequired,
"If 1, then only configured devices passed in through the"
"ql2xopts parameter will be presented to the OS");
int Bind = BIND_BY_PORT_NAME;
module_param(Bind, int, S_IRUGO|S_IRUSR);
MODULE_PARM_DESC(Bind,
"Target persistent binding method: "
"0 by Portname (default); 1 by PortID; 2 by Nodename. ");
int ql2xsuspendcount = SUSPEND_COUNT;
module_param(ql2xsuspendcount, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(ql2xsuspendcount,
"Number of 6-second suspend iterations to perform while a "
"target returns a <NOT READY> status. Default is 10 "
"iterations.");
int ql2xloginretrycount = 0; int ql2xloginretrycount = 0;
module_param(ql2xloginretrycount, int, S_IRUGO|S_IRUSR); module_param(ql2xloginretrycount, int, S_IRUGO|S_IRUSR);
MODULE_PARM_DESC(ql2xloginretrycount, MODULE_PARM_DESC(ql2xloginretrycount,
...@@ -330,7 +290,6 @@ qla2x00_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) ...@@ -330,7 +290,6 @@ qla2x00_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
sp->fcport = fcport; sp->fcport = fcport;
sp->cmd = cmd; sp->cmd = cmd;
sp->flags = 0; sp->flags = 0;
sp->err_id = 0;
CMD_SP(cmd) = (void *)sp; CMD_SP(cmd) = (void *)sp;
cmd->scsi_done = done; cmd->scsi_done = done;
...@@ -474,7 +433,6 @@ qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha) ...@@ -474,7 +433,6 @@ qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha)
while ((!atomic_read(&ha->loop_down_timer) && while ((!atomic_read(&ha->loop_down_timer) &&
atomic_read(&ha->loop_state) == LOOP_DOWN) || atomic_read(&ha->loop_state) == LOOP_DOWN) ||
test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
atomic_read(&ha->loop_state) != LOOP_READY) { atomic_read(&ha->loop_state) != LOOP_READY) {
msleep(1000); msleep(1000);
if (time_after_eq(jiffies, loop_timeout)) { if (time_after_eq(jiffies, loop_timeout)) {
...@@ -1194,34 +1152,24 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info) ...@@ -1194,34 +1152,24 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info)
spin_lock_init(&ha->hardware_lock); spin_lock_init(&ha->hardware_lock);
/* 4.23 Initialize /proc/scsi/qla2x00 counters */
ha->actthreads = 0;
ha->qthreads = 0;
ha->total_isr_cnt = 0;
ha->total_isp_aborts = 0;
ha->total_lip_cnt = 0;
ha->total_dev_errs = 0;
ha->total_ios = 0;
ha->total_bytes = 0;
ha->prev_topology = 0; ha->prev_topology = 0;
ha->ports = MAX_BUSES; ha->ports = MAX_BUSES;
if (IS_QLA2100(ha)) { if (IS_QLA2100(ha)) {
ha->max_targets = MAX_TARGETS_2100; host->max_id = MAX_TARGETS_2100;
ha->mbx_count = MAILBOX_REGISTER_COUNT_2100; ha->mbx_count = MAILBOX_REGISTER_COUNT_2100;
ha->request_q_length = REQUEST_ENTRY_CNT_2100; ha->request_q_length = REQUEST_ENTRY_CNT_2100;
ha->response_q_length = RESPONSE_ENTRY_CNT_2100; ha->response_q_length = RESPONSE_ENTRY_CNT_2100;
ha->last_loop_id = SNS_LAST_LOOP_ID_2100; ha->last_loop_id = SNS_LAST_LOOP_ID_2100;
host->sg_tablesize = 32; host->sg_tablesize = 32;
} else if (IS_QLA2200(ha)) { } else if (IS_QLA2200(ha)) {
ha->max_targets = MAX_TARGETS_2200; host->max_id = MAX_TARGETS_2200;
ha->mbx_count = MAILBOX_REGISTER_COUNT; ha->mbx_count = MAILBOX_REGISTER_COUNT;
ha->request_q_length = REQUEST_ENTRY_CNT_2200; ha->request_q_length = REQUEST_ENTRY_CNT_2200;
ha->response_q_length = RESPONSE_ENTRY_CNT_2100; ha->response_q_length = RESPONSE_ENTRY_CNT_2100;
ha->last_loop_id = SNS_LAST_LOOP_ID_2100; ha->last_loop_id = SNS_LAST_LOOP_ID_2100;
} else /*if (IS_QLA2300(ha))*/ { } else /*if (IS_QLA2300(ha))*/ {
ha->max_targets = MAX_TARGETS_2200; host->max_id = MAX_TARGETS_2200;
ha->mbx_count = MAILBOX_REGISTER_COUNT; ha->mbx_count = MAILBOX_REGISTER_COUNT;
ha->request_q_length = REQUEST_ENTRY_CNT_2200; ha->request_q_length = REQUEST_ENTRY_CNT_2200;
ha->response_q_length = RESPONSE_ENTRY_CNT_2300; ha->response_q_length = RESPONSE_ENTRY_CNT_2300;
...@@ -1265,8 +1213,7 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info) ...@@ -1265,8 +1213,7 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info)
host->unique_id = ha->instance; host->unique_id = ha->instance;
host->max_cmd_len = MAX_CMDSZ; host->max_cmd_len = MAX_CMDSZ;
host->max_channel = ha->ports - 1; host->max_channel = ha->ports - 1;
host->max_id = ha->max_targets; host->max_lun = MAX_LUNS;
host->max_lun = ha->max_luns;
host->transportt = qla2xxx_transport_template; host->transportt = qla2xxx_transport_template;
if (scsi_add_host(host, &pdev->dev)) if (scsi_add_host(host, &pdev->dev))
goto probe_alloc_failed; goto probe_alloc_failed;
...@@ -2336,8 +2283,7 @@ static int __init ...@@ -2336,8 +2283,7 @@ static int __init
qla2x00_module_init(void) qla2x00_module_init(void)
{ {
/* Allocate cache for SRBs. */ /* Allocate cache for SRBs. */
sprintf(srb_cachep_name, "qla2xxx_srbs"); srb_cachep = kmem_cache_create("qla2xxx_srbs", sizeof(srb_t), 0,
srb_cachep = kmem_cache_create(srb_cachep_name, sizeof(srb_t), 0,
SLAB_HWCACHE_ALIGN, NULL, NULL); SLAB_HWCACHE_ALIGN, NULL, NULL);
if (srb_cachep == NULL) { if (srb_cachep == NULL) {
printk(KERN_ERR printk(KERN_ERR
...@@ -2365,16 +2311,7 @@ qla2x00_module_init(void) ...@@ -2365,16 +2311,7 @@ qla2x00_module_init(void)
static void __exit static void __exit
qla2x00_module_exit(void) qla2x00_module_exit(void)
{ {
/* Free SRBs cache. */ kmem_cache_destroy(srb_cachep);
if (srb_cachep != NULL) {
if (kmem_cache_destroy(srb_cachep) != 0) {
printk(KERN_ERR
"qla2xxx: Unable to free SRB cache...Memory pools "
"still active?\n");
}
srb_cachep = NULL;
}
fc_release_transport(qla2xxx_transport_template); fc_release_transport(qla2xxx_transport_template);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment