diff mbox

3c503: fix broken IRQ autoprobing

Message ID 201106122140.51776.linux@rainbow-software.org
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Ondrej Zary June 12, 2011, 7:40 p.m. UTC
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>

Comments

Ben Hutchings June 12, 2011, 9:45 p.m. UTC | #1
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.
David Miller June 13, 2011, 10:25 p.m. UTC | #2
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
diff mbox

Patch

--- 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) {