Skip to content

Commit

Permalink
[SCSI] qla2xxx: Remove port down retry count.
Browse files Browse the repository at this point in the history
This patch removes the use of the port down retry counter as a mechanism to
update a fcport state. The internal driver counter is a residual carry-over
from pre-FC-transport aware driver inteaction. The ql2xport_down_retry module
parameter and NVRAM set ha->port_down_retry_count remain in order to seed the
fc-host's default dev-loss-tmo.

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
  • Loading branch information
Chad Dupuis authored and James Bottomley committed Oct 25, 2010
1 parent 542bce1 commit 1e6d067
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 40 deletions.
4 changes: 4 additions & 0 deletions drivers/scsi/qla2xxx/qla_attr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1547,6 +1547,10 @@ qla2x00_dev_loss_tmo_callbk(struct fc_rport *rport)
*((fc_port_t **)rport->dd_data) = NULL;
spin_unlock_irq(host->host_lock);

/* Now that the rport has been deleted, set the fcport state to
FCS_DEVICE_DEAD */
atomic_set(&fcport->state, FCS_DEVICE_DEAD);

if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags))
return;

Expand Down
2 changes: 0 additions & 2 deletions drivers/scsi/qla2xxx/qla_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -1700,9 +1700,7 @@ typedef struct fc_port {
atomic_t state;
uint32_t flags;

int port_login_retry_count;
int login_retry;
atomic_t port_down_timer;

struct fc_rport *rport, *drport;
u32 supported_classes;
Expand Down
8 changes: 0 additions & 8 deletions drivers/scsi/qla2xxx/qla_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -2916,20 +2916,12 @@ qla2x00_reg_remote_port(scsi_qla_host_t *vha, fc_port_t *fcport)
void
qla2x00_update_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
{
struct qla_hw_data *ha = vha->hw;

fcport->vha = vha;
fcport->login_retry = 0;
fcport->port_login_retry_count = ha->port_down_retry_count *
PORT_RETRY_TIME;
atomic_set(&fcport->port_down_timer, ha->port_down_retry_count *
PORT_RETRY_TIME);
fcport->flags &= ~(FCF_LOGIN_NEEDED | FCF_ASYNC_SENT);

qla2x00_iidma_fcport(vha, fcport);

atomic_set(&fcport->state, FCS_ONLINE);

qla2x00_reg_remote_port(vha, fcport);
}

Expand Down
30 changes: 0 additions & 30 deletions drivers/scsi/qla2xxx/qla_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -3547,11 +3547,9 @@ void
qla2x00_timer(scsi_qla_host_t *vha)
{
unsigned long cpu_flags = 0;
fc_port_t *fcport;
int start_dpc = 0;
int index;
srb_t *sp;
int t;
uint16_t w;
struct qla_hw_data *ha = vha->hw;
struct req_que *req;
Expand All @@ -3567,34 +3565,6 @@ qla2x00_timer(scsi_qla_host_t *vha)
/* Hardware read to raise pending EEH errors during mailbox waits. */
if (!pci_channel_offline(ha->pdev))
pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w);
/*
* Ports - Port down timer.
*
* Whenever, a port is in the LOST state we start decrementing its port
* down timer every second until it reaches zero. Once it reaches zero
* the port it marked DEAD.
*/
t = 0;
list_for_each_entry(fcport, &vha->vp_fcports, list) {
if (fcport->port_type != FCT_TARGET)
continue;

if (atomic_read(&fcport->state) == FCS_DEVICE_LOST) {

if (atomic_read(&fcport->port_down_timer) == 0)
continue;

if (atomic_dec_and_test(&fcport->port_down_timer) != 0)
atomic_set(&fcport->state, FCS_DEVICE_DEAD);

DEBUG(printk("scsi(%ld): fcport-%d - port retry count: "
"%d remaining\n",
vha->host_no,
t, atomic_read(&fcport->port_down_timer)));
}
t++;
} /* End of for fcport */


/* Loop down handler. */
if (atomic_read(&vha->loop_down_timer) > 0 &&
Expand Down

0 comments on commit 1e6d067

Please sign in to comment.