aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavem <davem>2002-02-01 21:45:28 +0000
committerdavem <davem>2002-02-01 21:45:28 +0000
commitbcbcab1aa878e19941c4d585ab4c114c52838591 (patch)
tree36676fc74f924833078336f2a88b9698b14b7ad5
parentaced4e4814e8a94209d25269be6b39cbf87e3724 (diff)
downloadnetdev-vger-cvs-bcbcab1aa878e19941c4d585ab4c114c52838591.tar.gz
When resetting due to a hard error condition, force
the PHY to be reset and auto-negotiation restarted.
-rw-r--r--drivers/net/sungem.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 23f537fc4..592e824c6 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -1,4 +1,4 @@
-/* $Id: sungem.c,v 1.49 2002-01-23 15:40:45 davem Exp $
+/* $Id: sungem.c,v 1.50 2002-02-01 21:45:28 davem Exp $
* sungem.c: Sun GEM ethernet driver.
*
* Copyright (C) 2000, 2001 David S. Miller (davem@redhat.com)
@@ -480,7 +480,7 @@ static int gem_abnormal_irq(struct net_device *dev, struct gem *gp, u32 gem_stat
return 0;
do_reset:
- gp->reset_task_pending = 1;
+ gp->reset_task_pending = 2;
schedule_task(&gp->reset_task);
return 1;
@@ -1182,7 +1182,8 @@ static void gem_reset_task(void *data)
/* Reset the chip & rings */
gem_stop(gp);
gem_init_rings(gp, 0);
- gem_init_hw(gp, 0);
+ gem_init_hw(gp,
+ (gp->reset_task_pending == 2));
netif_wake_queue(gp->dev);
}