bna: HW Error Counter Fix
authorRasesh Mody <rmody@brocade.com>
Fri, 22 Jul 2011 08:07:48 +0000 (08:07 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 23 Jul 2011 00:01:14 +0000 (17:01 -0700)
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>
drivers/net/bna/bfa_defs.h
drivers/net/bna/bfa_ioc.c
drivers/net/bna/bfa_ioc.h

index fa81f3c4b332fe44ec051fd1f5bd3581dcc1ec3b..b080b3698f48958d9f73c007be215a25bb6f2fdc 100644 (file)
@@ -153,6 +153,7 @@ struct bfa_ioc_drv_stats {
        u32     enable_reqs;
        u32     disable_replies;
        u32     enable_replies;
+       u32     rsvd;
 };
 
 /**
index c3b62a3753f967b7670feef83988e8f3603e4004..126b0aac9f941f6cd85e082ed84d2b0cbcd7d9ba 100644 (file)
@@ -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);
 }
 
index c6cf218d9f816f750823949408a3d5106fb54f16..4b5dc987453fb5bccd8309702bf0e14022182249 100644 (file)
@@ -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) ?                                             \