From: Andrew Morton Switch e1000 over to flush_work_keventd(). This probably fixes a netdev-close versus linkwatch rtnl_lock() deadlock which nobody knew about. Cc: "Maciej W. Rozycki" Cc: David Howells Cc: "David S. Miller" Cc: Jeff Garzik Cc: Auke Kok Cc: Oleg Nesterov Signed-off-by: Andrew Morton --- drivers/net/e1000/e1000_main.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/net/e1000/e1000_main.c~e1000-use-flush_keventd_work drivers/net/e1000/e1000_main.c --- a/drivers/net/e1000/e1000_main.c~e1000-use-flush_keventd_work +++ a/drivers/net/e1000/e1000_main.c @@ -1222,7 +1222,7 @@ e1000_remove(struct pci_dev *pdev) int i; #endif - flush_scheduled_work(); + flush_work_keventd(&adapter->reset_task); e1000_release_manageability(adapter); _