Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2090dee420911045258d50239dc2c527e4b1dd06
Commit:     2090dee420911045258d50239dc2c527e4b1dd06
Parent:     7b581a0fa85464f7f765b9a66f612e7ec4ab17f9
Author:     Divy Le Ray <[EMAIL PROTECTED]>
AuthorDate: Wed May 30 10:01:50 2007 -0700
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Wed Jun 20 19:16:59 2007 -0400

    cxgb3 - MAC watchdog update
    
    Fix variables initialization and usage in the MAC watchdog.
    
    Signed-off-by: Divy Le Ray <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/cxgb3/xgmac.c |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/drivers/net/cxgb3/xgmac.c b/drivers/net/cxgb3/xgmac.c
index 16cadba..b261be1 100644
--- a/drivers/net/cxgb3/xgmac.c
+++ b/drivers/net/cxgb3/xgmac.c
@@ -501,6 +501,10 @@ int t3b2_mac_watchdog_task(struct cmac *mac)
        unsigned int rx_xcnt;
        int status;
 
+       status = 0;
+       tx_xcnt = 1;            /* By default tx_xcnt is making progress */
+       tx_tcnt = mac->tx_tcnt; /* If tx_mcnt is progressing ignore tx_tcnt */
+       rx_xcnt = 1;            /* By default rx_xcnt is making progress */
        if (tx_mcnt == mac->tx_mcnt) {
                tx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap,
                                                A_XGM_TX_SPI4_SOP_EOP_CNT +
@@ -511,37 +515,44 @@ int t3b2_mac_watchdog_task(struct cmac *mac)
                        tx_tcnt = (G_TXDROPCNTCH0RCVD(t3_read_reg(adap,
                                                      A_TP_PIO_DATA)));
                } else {
-                       mac->toggle_cnt = 0;
-                       return 0;
+                       goto rxcheck;
                }
        } else {
                mac->toggle_cnt = 0;
-               return 0;
+               goto rxcheck;
        }
 
        if (((tx_tcnt != mac->tx_tcnt) &&
             (tx_xcnt == 0) && (mac->tx_xcnt == 0)) ||
            ((mac->tx_mcnt == tx_mcnt) &&
             (tx_xcnt != 0) && (mac->tx_xcnt != 0))) {
-               if (mac->toggle_cnt > 4)
+               if (mac->toggle_cnt > 4) {
                        status = 2;
-               else 
+                       goto out;
+               } else {
                        status = 1;
+                       goto out;
+               }
        } else {
                mac->toggle_cnt = 0;
-               return 0;
+               goto rxcheck;
        }
 
+rxcheck:
        if (rx_mcnt != mac->rx_mcnt)
                rx_xcnt = (G_TXSPI4SOPCNT(t3_read_reg(adap,
                                                A_XGM_RX_SPI4_SOP_EOP_CNT +
                                                mac->offset)));
-       else 
-               return 0;
+       else
+               goto out;
 
-       if (mac->rx_mcnt != s->rx_frames && rx_xcnt == 0 && mac->rx_xcnt == 0) 
+       if (mac->rx_mcnt != s->rx_frames && rx_xcnt == 0 &&
+           mac->rx_xcnt == 0) {
                status = 2;
-       
+               goto out;
+       }
+
+out:
        mac->tx_tcnt = tx_tcnt;
        mac->tx_xcnt = tx_xcnt;
        mac->tx_mcnt = s->tx_frames;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to