aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDivy Le Ray <divy@chelsio.com>2010-02-13 04:44:35 -0500
committerDavid S. Miller <davem@davemloft.net>2010-02-16 00:49:48 -0500
commite9449d85c67127d6f9d01aad8963d567ab02cb96 (patch)
treeb797e770328569d1cb5ed39bc70530da5741f305
parent38a8fc0fcf86f131f8bddf3787f9dfa7325bd981 (diff)
cxgb3: fix link flap
The driver is expected to report that the link is up when the phy Rx signal is established and the mac has not detected a link fault. The code is however broken, the driver does not check the link fault status when the phy link status changes. The link fault status being checked within a short period of time, it leads to link up/link down events. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/cxgb3/t3_hw.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/cxgb3/t3_hw.c b/drivers/net/cxgb3/t3_hw.c
index 032cfe065570..3ab9f51918aa 100644
--- a/drivers/net/cxgb3/t3_hw.c
+++ b/drivers/net/cxgb3/t3_hw.c
@@ -1262,7 +1262,8 @@ void t3_link_changed(struct adapter *adapter, int port_id)
1262 lc->fc = fc; 1262 lc->fc = fc;
1263 } 1263 }
1264 1264
1265 t3_os_link_changed(adapter, port_id, link_ok, speed, duplex, fc); 1265 t3_os_link_changed(adapter, port_id, link_ok && !pi->link_fault,
1266 speed, duplex, fc);
1266} 1267}
1267 1268
1268void t3_link_fault(struct adapter *adapter, int port_id) 1269void t3_link_fault(struct adapter *adapter, int port_id)