# HG changeset patch # User Florian Pose # Date 1247730737 0 # Node ID 41ca84fb6bb20c1287e12f0d05a0ea142467fc9c # Parent da637f7e4e3acdf83f713bc2ca4621c34c21d2d6 Fixed IRQ freeing bug in e100 drivers. diff -r da637f7e4e3a -r 41ca84fb6bb2 devices/e100-2.6.20-ethercat.c --- 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); } diff -r da637f7e4e3a -r 41ca84fb6bb2 devices/e100-2.6.24-ethercat.c --- 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); } diff -r da637f7e4e3a -r 41ca84fb6bb2 devices/e100-2.6.26-ethercat.c --- 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); } diff -r da637f7e4e3a -r 41ca84fb6bb2 devices/e100-2.6.28-ethercat.c --- 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); } diff -r da637f7e4e3a -r 41ca84fb6bb2 devices/e100-2.6.29-ethercat.c --- 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); }