From: Ondrej Zary Date: Sun, 12 Jun 2011 09:40:49 +0000 (+0000) Subject: 3c503: fix broken IRQ autoprobing X-Git-Tag: v3.0-rc4~5^2~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ffde03d2aa112750468cff07efc9e0a504517dd;p=platform%2Fkernel%2Flinux-stable.git 3c503: fix broken IRQ autoprobing Fix broken IRQ autoprobing in 3c503 driver: - improper IRQ freeing (does not free IRQs causes WARN) - missing break when an working IRQ is found The driver works with this patch. Signed-off-by: Ondrej Zary Reviewed-by: Ben Hutchings Signed-off-by: David S. Miller --- diff --git a/drivers/net/3c503.c b/drivers/net/3c503.c index d84f6e8..5b73298 100644 --- a/drivers/net/3c503.c +++ b/drivers/net/3c503.c @@ -412,7 +412,7 @@ el2_open(struct net_device *dev) outb_p(0x04 << ((*irqp == 9) ? 2 : *irqp), E33G_IDCFR); outb_p(0x00, E33G_IDCFR); msleep(1); - free_irq(*irqp, el2_probe_interrupt); + free_irq(*irqp, &seen); if (!seen) continue; @@ -422,6 +422,7 @@ el2_open(struct net_device *dev) continue; if (retval < 0) goto err_disable; + break; } while (*++irqp); if (*irqp == 0) {