提交 1c5625cf 编写于 作者: P Phil Sutter 提交者: David S. Miller

korina: do not use IRQF_SHARED with IRQF_DISABLED

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: NPhil Sutter <n0-1@freewrt.org>
Acked-by: NFlorian Fainelli <florian@openwrt.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 5edc7668
...@@ -1000,14 +1000,14 @@ static int korina_open(struct net_device *dev) ...@@ -1000,14 +1000,14 @@ static int korina_open(struct net_device *dev)
* that handles the Done Finished * that handles the Done Finished
* Ovr and Und Events */ * Ovr and Und Events */
ret = request_irq(lp->rx_irq, &korina_rx_dma_interrupt, 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) { if (ret < 0) {
printk(KERN_ERR DRV_NAME "%s: unable to get Rx DMA IRQ %d\n", printk(KERN_ERR DRV_NAME "%s: unable to get Rx DMA IRQ %d\n",
dev->name, lp->rx_irq); dev->name, lp->rx_irq);
goto err_release; goto err_release;
} }
ret = request_irq(lp->tx_irq, &korina_tx_dma_interrupt, 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) { if (ret < 0) {
printk(KERN_ERR DRV_NAME "%s: unable to get Tx DMA IRQ %d\n", printk(KERN_ERR DRV_NAME "%s: unable to get Tx DMA IRQ %d\n",
dev->name, lp->tx_irq); dev->name, lp->tx_irq);
...@@ -1016,7 +1016,7 @@ static int korina_open(struct net_device *dev) ...@@ -1016,7 +1016,7 @@ static int korina_open(struct net_device *dev)
/* Install handler for overrun error. */ /* Install handler for overrun error. */
ret = request_irq(lp->ovr_irq, &korina_ovr_interrupt, ret = request_irq(lp->ovr_irq, &korina_ovr_interrupt,
IRQF_SHARED | IRQF_DISABLED, "Ethernet Overflow", dev); IRQF_DISABLED, "Ethernet Overflow", dev);
if (ret < 0) { if (ret < 0) {
printk(KERN_ERR DRV_NAME"%s: unable to get OVR IRQ %d\n", printk(KERN_ERR DRV_NAME"%s: unable to get OVR IRQ %d\n",
dev->name, lp->ovr_irq); dev->name, lp->ovr_irq);
...@@ -1025,7 +1025,7 @@ static int korina_open(struct net_device *dev) ...@@ -1025,7 +1025,7 @@ static int korina_open(struct net_device *dev)
/* Install handler for underflow error. */ /* Install handler for underflow error. */
ret = request_irq(lp->und_irq, &korina_und_interrupt, ret = request_irq(lp->und_irq, &korina_und_interrupt,
IRQF_SHARED | IRQF_DISABLED, "Ethernet Underflow", dev); IRQF_DISABLED, "Ethernet Underflow", dev);
if (ret < 0) { if (ret < 0) {
printk(KERN_ERR DRV_NAME "%s: unable to get UND IRQ %d\n", printk(KERN_ERR DRV_NAME "%s: unable to get UND IRQ %d\n",
dev->name, lp->und_irq); dev->name, lp->und_irq);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册