diff options
author | Rasesh Mody <rmody@brocade.com> | 2011-07-22 10:07:48 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-23 02:01:14 +0200 |
commit | 9b08a4fce2245748f05b43e1c03fd1676079e003 (patch) | |
tree | ace6b9ebacc5b85035eab99eafdee85aaef81e8d | |
parent | bna: Add HW Semaphore Unlock Logic (diff) | |
download | linux-9b08a4fce2245748f05b43e1c03fd1676079e003.tar.xz linux-9b08a4fce2245748f05b43e1c03fd1676079e003.zip |
bna: HW Error Counter Fix
Change details:
- Heartbeat failure counter is not incrementing under some scenarios.
Update hbfails and hb_count stats during hwerror event.
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/bna/bfa_defs.h | 1 | ||||
-rw-r--r-- | drivers/net/bna/bfa_ioc.c | 3 | ||||
-rw-r--r-- | drivers/net/bna/bfa_ioc.h | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/bna/bfa_defs.h b/drivers/net/bna/bfa_defs.h index fa81f3c4b332..b080b3698f48 100644 --- a/drivers/net/bna/bfa_defs.h +++ b/drivers/net/bna/bfa_defs.h @@ -153,6 +153,7 @@ struct bfa_ioc_drv_stats { u32 enable_reqs; u32 disable_replies; u32 enable_replies; + u32 rsvd; }; /** diff --git a/drivers/net/bna/bfa_ioc.c b/drivers/net/bna/bfa_ioc.c index c3b62a3753f9..126b0aac9f94 100644 --- a/drivers/net/bna/bfa_ioc.c +++ b/drivers/net/bna/bfa_ioc.c @@ -2029,6 +2029,8 @@ bfa_nw_ioc_mbox_isr(struct bfa_ioc *ioc) void bfa_nw_ioc_error_isr(struct bfa_ioc *ioc) { + bfa_ioc_stats(ioc, ioc_hbfails); + bfa_ioc_stats_hb_count(ioc, ioc->hb_count); bfa_fsm_send_event(ioc, IOC_E_HWERROR); } @@ -2255,6 +2257,7 @@ bfa_ioc_recover(struct bfa_ioc *ioc) { pr_crit("Heart Beat of IOC has failed\n"); bfa_ioc_stats(ioc, ioc_hbfails); + bfa_ioc_stats_hb_count(ioc, ioc->hb_count); bfa_fsm_send_event(ioc, IOC_E_HBFAIL); } diff --git a/drivers/net/bna/bfa_ioc.h b/drivers/net/bna/bfa_ioc.h index c6cf218d9f81..4b5dc987453f 100644 --- a/drivers/net/bna/bfa_ioc.h +++ b/drivers/net/bna/bfa_ioc.h @@ -237,6 +237,8 @@ struct bfa_ioc_hwif { BFI_ADAPTER_GETP(NPORTS, (__ioc)->attr->adapter_prop) #define bfa_ioc_stats(_ioc, _stats) ((_ioc)->stats._stats++) +#define bfa_ioc_stats_hb_count(_ioc, _hb_count) \ + ((_ioc)->stats.hb_count = (_hb_count)) #define BFA_IOC_FWIMG_MINSZ (16 * 1024) #define BFA_IOC_FWIMG_TYPE(__ioc) \ (((__ioc)->ctdev) ? \ |