Fixed IRQ freeing bug in e100 drivers.
--- a/devices/e100-2.6.20-ethercat.c Wed Jul 15 12:00:17 2009 +0000
+++ b/devices/e100-2.6.20-ethercat.c Thu Jul 16 07:52:17 2009 +0000
@@ -2186,7 +2186,7 @@
mod_timer(&nic->watchdog, jiffies);
}
if((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED,
- nic->netdev->name, nic->netdev)))
+ nic->netdev->name, nic->netdev)))
goto err_no_irq;
if (!nic->ecdev) {
netif_wake_queue(nic->netdev);
@@ -2215,8 +2215,8 @@
netif_stop_queue(nic->netdev);
}
e100_hw_reset(nic);
+ free_irq(nic->pdev->irq, nic->netdev);
if (!nic->ecdev) {
- free_irq(nic->pdev->irq, nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);
}
--- a/devices/e100-2.6.24-ethercat.c Wed Jul 15 12:00:17 2009 +0000
+++ b/devices/e100-2.6.24-ethercat.c Thu Jul 16 07:52:17 2009 +0000
@@ -2195,7 +2195,7 @@
mod_timer(&nic->watchdog, jiffies);
}
if((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED,
- nic->netdev->name, nic->netdev)))
+ nic->netdev->name, nic->netdev)))
goto err_no_irq;
if (!nic->ecdev) {
netif_wake_queue(nic->netdev);
@@ -2224,8 +2224,8 @@
netif_stop_queue(nic->netdev);
}
e100_hw_reset(nic);
+ free_irq(nic->pdev->irq, nic->netdev);
if (!nic->ecdev) {
- free_irq(nic->pdev->irq, nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);
}
--- a/devices/e100-2.6.26-ethercat.c Wed Jul 15 12:00:17 2009 +0000
+++ b/devices/e100-2.6.26-ethercat.c Thu Jul 16 07:52:17 2009 +0000
@@ -2266,7 +2266,7 @@
mod_timer(&nic->watchdog, jiffies);
}
if((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED,
- nic->netdev->name, nic->netdev)))
+ nic->netdev->name, nic->netdev)))
goto err_no_irq;
if (!nic->ecdev) {
netif_wake_queue(nic->netdev);
@@ -2295,8 +2295,8 @@
netif_stop_queue(nic->netdev);
}
e100_hw_reset(nic);
+ free_irq(nic->pdev->irq, nic->netdev);
if (!nic->ecdev) {
- free_irq(nic->pdev->irq, nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);
}
--- a/devices/e100-2.6.28-ethercat.c Wed Jul 15 12:00:17 2009 +0000
+++ b/devices/e100-2.6.28-ethercat.c Thu Jul 16 07:52:17 2009 +0000
@@ -2266,7 +2266,7 @@
mod_timer(&nic->watchdog, jiffies);
}
if((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED,
- nic->netdev->name, nic->netdev)))
+ nic->netdev->name, nic->netdev)))
goto err_no_irq;
if (!nic->ecdev) {
netif_wake_queue(nic->netdev);
@@ -2295,8 +2295,8 @@
netif_stop_queue(nic->netdev);
}
e100_hw_reset(nic);
+ free_irq(nic->pdev->irq, nic->netdev);
if (!nic->ecdev) {
- free_irq(nic->pdev->irq, nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);
}
--- a/devices/e100-2.6.29-ethercat.c Wed Jul 15 12:00:17 2009 +0000
+++ b/devices/e100-2.6.29-ethercat.c Thu Jul 16 07:52:17 2009 +0000
@@ -2161,7 +2161,7 @@
mod_timer(&nic->watchdog, jiffies);
}
if ((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED,
- nic->netdev->name, nic->netdev)))
+ nic->netdev->name, nic->netdev)))
goto err_no_irq;
if (!nic->ecdev) {
netif_wake_queue(nic->netdev);
@@ -2190,8 +2190,8 @@
netif_stop_queue(nic->netdev);
}
e100_hw_reset(nic);
+ free_irq(nic->pdev->irq, nic->netdev);
if (!nic->ecdev) {
- free_irq(nic->pdev->irq, nic->netdev);
del_timer_sync(&nic->watchdog);
netif_carrier_off(nic->netdev);
}