| To: | linux-kernel@xxxxxxxxxxxxxxx |
|---|---|
| Subject: | [patch 2.6.11] e1000: flush work queues on remove |
| From: | "John W. Linville" <linville@xxxxxxxxxxxxx> |
| Date: | Mon, 21 Mar 2005 15:02:27 -0500 |
| Cc: | cramerj@xxxxxxxxx, john.ronciak@xxxxxxxxx, ganesh.venkatesan@xxxxxxxxx, netdev@xxxxxxxxxxx, jgarzik@xxxxxxxxx |
| Mail-followup-to: | linux-kernel@xxxxxxxxxxxxxxx, cramerj@xxxxxxxxx, john.ronciak@xxxxxxxxx, ganesh.venkatesan@xxxxxxxxx, netdev@xxxxxxxxxxx, jgarzik@xxxxxxxxx |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mutt/1.4.1i |
Flush work queues in ->remove() for e1000.
Acked-by: Ganesh Venkatesan <ganesh.venkatesan@xxxxxxxxx>
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
---
Since e1000 is using work queues, we need to call
flush_scheduled_work() before removing the driver from memory.
Otherwise, we are prone to an Oops...
drivers/net/e1000/e1000_main.c | 2 ++
1 files changed, 2 insertions(+)
--- e1000-work-flush-2.6/drivers/net/e1000/e1000_main.c.orig 2005-03-17
21:37:30.000000000 -0500
+++ e1000-work-flush-2.6/drivers/net/e1000/e1000_main.c 2005-03-21
14:52:46.077220964 -0500
@@ -660,6 +660,8 @@ e1000_remove(struct pci_dev *pdev)
struct e1000_adapter *adapter = netdev->priv;
uint32_t manc;
+ flush_scheduled_work();
+
if(adapter->hw.mac_type >= e1000_82540 &&
adapter->hw.media_type == e1000_media_type_copper) {
manc = E1000_READ_REG(&adapter->hw, MANC);
--
John W. Linville
linville@xxxxxxxxxxxxx
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH] remove unused netlink NL_EMULATE_DEV code, Max Krasnyansky |
|---|---|
| Next by Date: | Re: Iproute2: update, Lennert Buytenhek |
| Previous by Thread: | [IPROUTE2] Routing attribute alignment fix, Thomas Graf |
| Next by Thread: | Re: Iproute2: update, Lennert Buytenhek |
| Indexes: | [Date] [Thread] [Top] [All Lists] |