[SCSI] bfa: Resume BFA operations after firmware mismatch is resolved.
authorKrishna Gudipati <kgudipat@brocade.com>
Thu, 4 Mar 2010 01:44:02 +0000 (17:44 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 4 Mar 2010 10:47:02 +0000 (16:17 +0530)
commite67143243a1a6b47e1bdcda189ffac46d2a8744d
tree03a14641d29ec2d93eedcc921af7200c62f2e723
parenta046bf0559018ba3d16c412fc4e1aa2be5f11f36
[SCSI] bfa: Resume BFA operations after firmware mismatch is resolved.

bfad.c & bfad_drv.h:
  * Created a kernel thread from pci_probe that does the bfad start
    operations after BFA init done on a firmware mismatch.
  * The kernel thread on a fw mismatch waits for an event from IOC
    call back and is woken up from bfa_cb_init() on BFA init success.
  * In normal cases of no firmware mismatch this thread is terminated
    in pci_probe.

bfa_fcs_lport.c, fabric.c, fcs_lport.h & vport.c:
  * Split the lport init to attach time and init time code, so that
    proper config attributes are set after firmware mismatch.

bfa_iocfc.c:
  * Handle an IOC timer issue, where the IOC timer would expire before
    the init completion and send Init fail event to the driver,
    however IOC init continues and completes successfully at the later
    stage. The bfa and driver were not handling this kind of deferred
    init completion.

Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/bfa/bfa_fcs_lport.c
drivers/scsi/bfa/bfa_iocfc.c
drivers/scsi/bfa/bfad.c
drivers/scsi/bfa/bfad_drv.h
drivers/scsi/bfa/fabric.c
drivers/scsi/bfa/fcs_lport.h
drivers/scsi/bfa/vport.c