diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-11-20 06:50:46 +0300 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-11-24 04:52:09 +0300 |
commit | 61dbcecef568450de954115180881bf2f68511bc (patch) | |
tree | 5cd9d0bff1ab065764230f870a1a48bbdb22142d /drivers/net/ibm_newemac/core.h | |
parent | 2ffbb8377c7a0713baf6644e285adc27a5654582 (diff) | |
download | linux-61dbcecef568450de954115180881bf2f68511bc.tar.xz |
ibm_newemac: Fix possible lockup on close
It's a bad idea to call flush_scheduled_work from within a
netdev->stop because the linkwatch will occasionally take the
rtnl lock from a workqueue context, and thus that can deadlock.
This reworks things a bit in that area to avoid the problem.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ibm_newemac/core.h')
-rw-r--r-- | drivers/net/ibm_newemac/core.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ibm_newemac/core.h b/drivers/net/ibm_newemac/core.h index 4011803117ca..a010b2463fd9 100644 --- a/drivers/net/ibm_newemac/core.h +++ b/drivers/net/ibm_newemac/core.h @@ -258,6 +258,7 @@ struct emac_instance { int stop_timeout; /* in us */ int no_mcast; int mcast_pending; + int opened; struct work_struct reset_work; spinlock_t lock; }; |