[SCSI] qla2xxx: Correct synchronization of software/firmware fcport states.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Thu, 14 Aug 2008 04:36:56 +0000 (21:36 -0700)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Sat, 16 Aug 2008 15:21:09 +0000 (10:21 -0500)
commit6390d1f33faecf48e31f27dd7dbe928540f8acfc
treef6ff0fa0888f89117618e832bdcd257da0f5803d
parentfe42625cdf0d4e06f01e365897a64b68d7f7de7d
[SCSI] qla2xxx: Correct synchronization of software/firmware fcport states.

Greg Wettstein (greg@enjellic.com) noted:

http://article.gmane.org/gmane.linux.scsi/43409

on a reboot of a previously recognized SCST target, the initiator
driver would be unable to re-recognize the device as a target.
It turns out that prior to the SCST software reloading and
returning it's "target-capable" abilities in the PRLI payload,
the HBA would be re-initialized as an initiator-only type port.
Since initiators typically classify themselves as an FCP-2
capable device, both software and firmware do not perform an
explicit logout during port-loss.  Unfortunately, as can be seen
by the failure case, when the port (now target-capable) returns,
firmware performs an ADISC without a follow-on PRLI, leaving
stale 'initiator-only' data in the firmware's port database.

Correct the discrepancy by performing the explicit logout during
the transport's request to terminate-rport-io, thus synchronizing
port states and ensuring a follow-on PRLI is performed.

Reported-by: Greg Wettstein <greg@enjellic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/qla2xxx/qla_attr.c