Message ID | 201106122140.51776.linux@rainbow-software.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Sun, 2011-06-12 at 21:40 +0200, Ondrej Zary wrote: > 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. I made a previous attempt to fix autoprobing (commit b0cf4dfb7cd21556efd9a6a67edcba0840b4d98d), but didn't have any hardware to test on. In the process I introduced these new bugs. Sorry about that. > Signed-off-by: Ondrej Zary <linux@rainbow-software.org> [...] Reviewed-by: Ben Hutchings <ben@decadent.org.uk> Ben.
From: Ben Hutchings <ben@decadent.org.uk> Date: Sun, 12 Jun 2011 17:45:11 -0400 > On Sun, 2011-06-12 at 21:40 +0200, Ondrej Zary wrote: >> 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. > > I made a previous attempt to fix autoprobing (commit > b0cf4dfb7cd21556efd9a6a67edcba0840b4d98d), but didn't have any hardware > to test on. In the process I introduced these new bugs. Sorry about > that. > >> Signed-off-by: Ondrej Zary <linux@rainbow-software.org> > [...] > Reviewed-by: Ben Hutchings <ben@decadent.org.uk> Applied, 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
--- linux-2.6.39-rc2-orig/drivers/net/3c503.c 2011-04-06 03:30:43.000000000 +0200 +++ linux-2.6.39-rc2/drivers/net/3c503.c 2011-06-12 21:29:47.000000000 +0200 @@ -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) {
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 <linux@rainbow-software.org>