[PATCH] drivers/net/wan/z85230.c
From: tom watson
Date: Wed Feb 23 2005 - 16:13:20 EST
While working on a driver for z85230 based board I noticed what looks
like it could be a problem. If the interrupt handler is handling an
interrupt on port b and an interrupt comes in for port a, it seems to me
that the port b handler would be called instead of the port a handler,
and possibly hang the board until reset.
Attached is a patch to set the irq methods back to port a before
attempting to call them.
Cheers,
Tom.
--- linux-2.6.10/drivers/net/wan/z85230.c 2004-12-24 16:33:49.000000000 -0500
+++ /home/watsontj/z85230.c 2005-02-23 15:26:32.911085451 -0500
@@ -734,7 +734,7 @@
u8 intr;
static volatile int locker=0;
int work=0;
- struct z8530_irqhandler *irqs=dev->chanA.irqs;
+ struct z8530_irqhandler *irqs;
if(locker)
{
@@ -758,6 +758,8 @@
/* Now walk the chip and see what it is wanting - it may be
an IRQ for someone else remember */
+ irqs=dev->chanA.irqs;
+
if(intr & (CHARxIP|CHATxIP|CHAEXT))
{
if(intr&CHARxIP)