[rb532] update 2.6.27 patches with upstream fixes from git repository and mailing...
[openwrt/svn-archive/archive.git] / target / linux / rb532 / patches-2.6.27 / 015-korina_irqf_flags.patch
diff --git a/target/linux/rb532/patches-2.6.27/015-korina_irqf_flags.patch b/target/linux/rb532/patches-2.6.27/015-korina_irqf_flags.patch
new file mode 100644 (file)
index 0000000..74059fb
--- /dev/null
@@ -0,0 +1,53 @@
+As the kernel warning states: "IRQF_DISABLED is not guaranteed on shared
+IRQs". Since these IRQs' values are hardcoded and my test system doesn't
+show any shared use of IRQs at all, rather make them non-shared than
+non-disabled.
+
+Signed-off-by: Phil Sutter <n0-1@freewrt.org>
+---
+ drivers/net/korina.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/net/korina.c b/drivers/net/korina.c
+index bd33fa9..1d6e48e 100644
+--- a/drivers/net/korina.c
++++ b/drivers/net/korina.c
+@@ -1000,14 +1000,14 @@ static int korina_open(struct net_device *dev)
+        * that handles the Done Finished
+        * Ovr and Und Events */
+       ret = request_irq(lp->rx_irq, &korina_rx_dma_interrupt,
+-              IRQF_SHARED | IRQF_DISABLED, "Korina ethernet Rx", dev);
++                      IRQF_DISABLED, "Korina ethernet Rx", dev);
+       if (ret < 0) {
+               printk(KERN_ERR DRV_NAME "%s: unable to get Rx DMA IRQ %d\n",
+                   dev->name, lp->rx_irq);
+               goto err_release;
+       }
+       ret = request_irq(lp->tx_irq, &korina_tx_dma_interrupt,
+-              IRQF_SHARED | IRQF_DISABLED, "Korina ethernet Tx", dev);
++                      IRQF_DISABLED, "Korina ethernet Tx", dev);
+       if (ret < 0) {
+               printk(KERN_ERR DRV_NAME "%s: unable to get Tx DMA IRQ %d\n",
+                   dev->name, lp->tx_irq);
+@@ -1016,7 +1016,7 @@ static int korina_open(struct net_device *dev)
+       /* Install handler for overrun error. */
+       ret = request_irq(lp->ovr_irq, &korina_ovr_interrupt,
+-                      IRQF_SHARED | IRQF_DISABLED, "Ethernet Overflow", dev);
++                      IRQF_DISABLED, "Ethernet Overflow", dev);
+       if (ret < 0) {
+               printk(KERN_ERR DRV_NAME"%s: unable to get OVR IRQ %d\n",
+                   dev->name, lp->ovr_irq);
+@@ -1025,7 +1025,7 @@ static int korina_open(struct net_device *dev)
+       /* Install handler for underflow error. */
+       ret = request_irq(lp->und_irq, &korina_und_interrupt,
+-                      IRQF_SHARED | IRQF_DISABLED, "Ethernet Underflow", dev);
++                      IRQF_DISABLED, "Ethernet Underflow", dev);
+       if (ret < 0) {
+               printk(KERN_ERR DRV_NAME "%s: unable to get UND IRQ %d\n",
+                   dev->name, lp->und_irq);
+-- 
+1.5.6.4
+
+