diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2011-06-24 23:22:56 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-06-29 17:57:52 -0400 |
commit | 5a0adaedffce91100d03fc1036dde024c8589295 (patch) | |
tree | 672bba0f2dd33eea68a492dc4567f42d16a53c4d /drivers/scsi/bfa/bfa_ioc_cb.c | |
parent | 1a4d8e1bd81c018f7b8c7622066d5cfead59b38a (diff) |
[SCSI] bfa: IOC bug fixes.
- Add logic to handle the case where PCI mapping goes away when
IOCPF state machine is waiting for semaphore.
- Added logic to unlock hw semaphore if the previos FW boot was
from flash based and the current FW initialization attempt is from OS.
- Added fix to update hbfails and hb_count stats during hwerror event.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfa_ioc_cb.c')
-rw-r--r-- | drivers/scsi/bfa/bfa_ioc_cb.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/drivers/scsi/bfa/bfa_ioc_cb.c b/drivers/scsi/bfa/bfa_ioc_cb.c index e858bc0c48d..30df8a28471 100644 --- a/drivers/scsi/bfa/bfa_ioc_cb.c +++ b/drivers/scsi/bfa/bfa_ioc_cb.c | |||
@@ -69,21 +69,6 @@ bfa_ioc_set_cb_hwif(struct bfa_ioc_s *ioc) | |||
69 | static bfa_boolean_t | 69 | static bfa_boolean_t |
70 | bfa_ioc_cb_firmware_lock(struct bfa_ioc_s *ioc) | 70 | bfa_ioc_cb_firmware_lock(struct bfa_ioc_s *ioc) |
71 | { | 71 | { |
72 | struct bfi_ioc_image_hdr_s fwhdr; | ||
73 | uint32_t fwstate = readl(ioc->ioc_regs.ioc_fwstate); | ||
74 | |||
75 | if (fwstate == BFI_IOC_UNINIT) | ||
76 | return BFA_TRUE; | ||
77 | |||
78 | bfa_ioc_fwver_get(ioc, &fwhdr); | ||
79 | |||
80 | if (swab32(fwhdr.exec) == BFI_FWBOOT_TYPE_NORMAL) | ||
81 | return BFA_TRUE; | ||
82 | |||
83 | bfa_trc(ioc, fwstate); | ||
84 | bfa_trc(ioc, fwhdr.exec); | ||
85 | writel(BFI_IOC_UNINIT, ioc->ioc_regs.ioc_fwstate); | ||
86 | |||
87 | return BFA_TRUE; | 72 | return BFA_TRUE; |
88 | } | 73 | } |
89 | 74 | ||