* [PATCH] e1000: IRQ resource cleanup
@ 2006-08-19 20:14 Vasily Averin
0 siblings, 0 replies; only message in thread
From: Vasily Averin @ 2006-08-19 20:14 UTC (permalink / raw)
To: netdev, Jeb Cramer, John Ronciak, Jesse Brandeburg, Jeff Kirsher,
Auke Kok, Andrew Morton, Jeff Garzik, devel, e1000-devel
[-- Attachment #1: Type: text/plain, Size: 520 bytes --]
patch updated: It seems for me e1000_power_down_phy() should be added to
rollbacke1000_power_up_phy().
I know, currently e1000_up() always return success. But this behaviour may be
changed in future...
Andrew,
could you please use attached patch instead previous version?
---
irq leak was found in 2.6.18-rc4 and e1000 7.2.7 from sourceforge:
if e1000_up fails in e1000_open() we do not free allocated irq
Signed-off-by: Vasily Averin <vvs@sw.ru>
Thank you,
Vasily Averin
SWsoft Virtuozzo/OpenVZ Linux kernel team
[-- Attachment #2: diff-e1000-irqleak-20060819 --]
[-- Type: text/plain, Size: 627 bytes --]
--- linux-2.6.18-rc4/drivers/net/e1000/e1000_main.c.oirq1 2006-08-19 22:57:02.000000000 +0400
+++ linux-2.6.18-rc4/drivers/net/e1000/e1000_main.c 2006-08-19 23:02:45.000000000 +0400
@@ -1208,7 +1208,7 @@ e1000_open(struct net_device *netdev)
err = e1000_request_irq(adapter);
if (err)
- goto err_up;
+ goto err_req_irq;
e1000_power_up_phy(adapter);
@@ -1229,6 +1229,9 @@ e1000_open(struct net_device *netdev)
return E1000_SUCCESS;
err_up:
+ e1000_power_down_phy(adapter);
+ e1000_free_irq(adapter);
+err_req_irq:
e1000_free_all_rx_resources(adapter);
err_setup_rx:
e1000_free_all_tx_resources(adapter);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-08-19 20:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-19 20:14 [PATCH] e1000: IRQ resource cleanup Vasily Averin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.