qla2xxx: Remove restriction on starting remote device discovery on port update.

Limiting which port update events will allow the driver to kick off a
name server scan has been problematic in some corner cases so remove the
restriction and restore the previous semantic. Also move the link
up/down informational messages to the LOOP_UP and LOOP_DOWN events.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Chad Dupuis 2014-08-08 07:38:09 -04:00 committed by Christoph Hellwig
parent 34c5801d81
commit 8e5a9484ae
2 changed files with 5 additions and 7 deletions

View File

@ -34,7 +34,7 @@
* | | | 0x5047,0x5052 | * | | | 0x5047,0x5052 |
* | | | 0x5084,0x5075 | * | | | 0x5084,0x5075 |
* | | | 0x503d,0x5044 | * | | | 0x503d,0x5044 |
* | | | 0x507b | * | | | 0x507b,0x505f |
* | Timer Routines | 0x6012 | | * | Timer Routines | 0x6012 | |
* | User Space Interactions | 0x70e2 | 0x7018,0x702e | * | User Space Interactions | 0x70e2 | 0x7018,0x702e |
* | | | 0x7020,0x7024 | * | | | 0x7020,0x7024 |

View File

@ -730,7 +730,7 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
else else
ha->link_data_rate = mb[1]; ha->link_data_rate = mb[1];
ql_dbg(ql_dbg_async, vha, 0x500a, ql_log(ql_log_info, vha, 0x500a,
"LOOP UP detected (%s Gbps).\n", "LOOP UP detected (%s Gbps).\n",
qla2x00_get_link_speed_str(ha, ha->link_data_rate)); qla2x00_get_link_speed_str(ha, ha->link_data_rate));
@ -743,7 +743,7 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
? RD_REG_WORD(&reg24->mailbox4) : 0; ? RD_REG_WORD(&reg24->mailbox4) : 0;
mbx = (IS_P3P_TYPE(ha)) ? RD_REG_WORD(&reg82->mailbox_out[4]) mbx = (IS_P3P_TYPE(ha)) ? RD_REG_WORD(&reg82->mailbox_out[4])
: mbx; : mbx;
ql_dbg(ql_dbg_async, vha, 0x500b, ql_log(ql_log_info, vha, 0x500b,
"LOOP DOWN detected (%x %x %x %x).\n", "LOOP DOWN detected (%x %x %x %x).\n",
mb[1], mb[2], mb[3], mbx); mb[1], mb[2], mb[3], mbx);
@ -908,7 +908,8 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
* it. Otherwise ignore it and Wait for RSCN to come in. * it. Otherwise ignore it and Wait for RSCN to come in.
*/ */
atomic_set(&vha->loop_down_timer, 0); atomic_set(&vha->loop_down_timer, 0);
if (mb[1] != 0xffff || (mb[2] != 0x6 && mb[2] != 0x4)) { if (atomic_read(&vha->loop_state) != LOOP_DOWN &&
atomic_read(&vha->loop_state) != LOOP_DEAD) {
ql_dbg(ql_dbg_async, vha, 0x5011, ql_dbg(ql_dbg_async, vha, 0x5011,
"Asynchronous PORT UPDATE ignored %04x/%04x/%04x.\n", "Asynchronous PORT UPDATE ignored %04x/%04x/%04x.\n",
mb[1], mb[2], mb[3]); mb[1], mb[2], mb[3]);
@ -920,9 +921,6 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
ql_dbg(ql_dbg_async, vha, 0x5012, ql_dbg(ql_dbg_async, vha, 0x5012,
"Port database changed %04x %04x %04x.\n", "Port database changed %04x %04x %04x.\n",
mb[1], mb[2], mb[3]); mb[1], mb[2], mb[3]);
ql_log(ql_log_warn, vha, 0x505f,
"Link is operational (%s Gbps).\n",
qla2x00_get_link_speed_str(ha, ha->link_data_rate));
/* /*
* Mark all devices as missing so we will login again. * Mark all devices as missing so we will login again.