diff options
author | Divy Le Ray <divy@chelsio.com> | 2010-02-13 04:44:35 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-16 00:49:48 -0500 |
commit | e9449d85c67127d6f9d01aad8963d567ab02cb96 (patch) | |
tree | b797e770328569d1cb5ed39bc70530da5741f305 | |
parent | 38a8fc0fcf86f131f8bddf3787f9dfa7325bd981 (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.c | 3 |
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 | ||
1268 | void t3_link_fault(struct adapter *adapter, int port_id) | 1269 | void t3_link_fault(struct adapter *adapter, int port_id) |