Message ID | 20091128101323.GA25671@n2100.arm.linux.org.uk |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Sat, Nov 28, 2009 at 6:13 PM, Russell King - ARM Linux <linux@arm.linux.org.uk> wrote: > smc91x.h defines SMC_IRQ_FLAGS to be -1 when it wants the interrupt > flags to be taken from the resource structure. However, d280ead > changed this to checking for non-zero resource flags. > > Unfortunately, this means that on some platforms, we end up passing > '-1' to request_irq rather than the desired result. Combine the two > conditions into one so that the IRQ flags are taken from the resource > if either SMC_IRQ_FLAGS is -1 or the resource flags specify an > interrupt trigger. > > This restores network on at least the Versatile platform. > > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Eric Miao <eric.y.miao@gmail.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Miao <eric.y.miao@gmail.com> Date: Sat, 28 Nov 2009 23:15:13 +0800 > On Sat, Nov 28, 2009 at 6:13 PM, Russell King - ARM Linux > <linux@arm.linux.org.uk> wrote: >> smc91x.h defines SMC_IRQ_FLAGS to be -1 when it wants the interrupt >> flags to be taken from the resource structure. ,A However, d280ead >> changed this to checking for non-zero resource flags. >> >> Unfortunately, this means that on some platforms, we end up passing >> '-1' to request_irq rather than the desired result. ,A Combine the two >> conditions into one so that the IRQ flags are taken from the resource >> if either SMC_IRQ_FLAGS is -1 or the resource flags specify an >> interrupt trigger. >> >> This restores network on at least the Versatile platform. >> >> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> > > Acked-by: Eric Miao <eric.y.miao@gmail.com> Applied and queued up for -stable, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 05c91ee..a7af1f5 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c @@ -2283,7 +2283,7 @@ static int __devinit smc_drv_probe(struct platform_device *pdev) ndev->irq = ires->start; - if (ires->flags & IRQF_TRIGGER_MASK) + if (irq_flags == -1 || ires->flags & IRQF_TRIGGER_MASK) irq_flags = ires->flags & IRQF_TRIGGER_MASK; ret = smc_request_attrib(pdev, ndev);
smc91x.h defines SMC_IRQ_FLAGS to be -1 when it wants the interrupt flags to be taken from the resource structure. However, d280ead changed this to checking for non-zero resource flags. Unfortunately, this means that on some platforms, we end up passing '-1' to request_irq rather than the desired result. Combine the two conditions into one so that the IRQ flags are taken from the resource if either SMC_IRQ_FLAGS is -1 or the resource flags specify an interrupt trigger. This restores network on at least the Versatile platform. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> -- drivers/net/smc91x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html