From: Jesse Brandeburg Date: Fri, 15 Dec 2006 09:42:34 +0000 (+0100) Subject: [PATCH] e1000: No-delay link detection at interface up X-Git-Tag: v2.6.20-rc3~56^2~25 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=79f3d3996f06ee339c6f173e573826eccd3914ab;p=~emulex%2Finfiniband.git [PATCH] e1000: No-delay link detection at interface up Currently after an interface up, the link state is detected 2 seconds later when the first watchdog timer runs. This patch changes that by triggering the hardware to generate a link-change interrupt from the up() function instead. This has the result that the link state gets detected immediately and without races. This has the potential to speed up booting since a normal distribution boot process waits for a link before DHCP is attempted. Signed-off-by: Jesse Brandeburg Signed-off-by: Auke Kok Signed-off-by: Arjan van de Ven Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index b06b51a5527..8c4924f1f7e 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -556,7 +556,8 @@ e1000_up(struct e1000_adapter *adapter) clear_bit(__E1000_DOWN, &adapter->flags); - mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ); + /* fire a link change interrupt to start the watchdog */ + E1000_WRITE_REG(&adapter->hw, ICS, E1000_ICS_LSC); return 0; }