Re: [bug 2.5.69] xirc2ps_cs, irq 3: nobody cared, shutdown hangs

Zwane Mwaikambo (zwane@linuxpower.ca)
Tue, 13 May 2003 03:43:07 -0400 (EDT)


On Mon, 12 May 2003, Daniel Ritz wrote:

> ok, i tried that one, but no luck. still nobody cares. so it's that one:
> if (int_status == 0xff) { /* card may be ejected */
> DEBUG(3, "%s: interrupt %d for dead card\n", dev->name, irq);
> handled = 0;
> goto leave;
> }
>
> but it's not ejected, only a modpobe -r...

We shutdown the device so a lot of things aren't defined at this stage.
Lets make that handled = 1, we're bound to have 1 or 2 of these interrupts
creeping in.

Index: linux-2.5-cvs/drivers/net/pcmcia/xirc2ps_cs.c
===================================================================
RCS file: /home/cvs/linux-2.5/drivers/net/pcmcia/xirc2ps_cs.c,v
retrieving revision 1.19
diff -u -p -B -r1.19 xirc2ps_cs.c
--- linux-2.5-cvs/drivers/net/pcmcia/xirc2ps_cs.c 8 May 2003 05:16:27 -0000 1.19
+++ linux-2.5-cvs/drivers/net/pcmcia/xirc2ps_cs.c 13 May 2003 06:50:22 -0000
@@ -1312,7 +1312,7 @@ xirc2ps_interrupt(int irq, void *dev_id,
*/

if (!netif_device_present(dev))
- return IRQ_NONE;
+ return IRQ_HANDLED;

ioaddr = dev->base_addr;
if (lp->mohawk) { /* must disable the interrupt */
@@ -1330,7 +1330,6 @@ xirc2ps_interrupt(int irq, void *dev_id,
loop_entry:
if (int_status == 0xff) { /* card may be ejected */
DEBUG(3, "%s: interrupt %d for dead card\n", dev->name, irq);
- handled = 0;
goto leave;
}
eth_status = GetByte(XIRCREG_ESR);

-- 
function.linuxpower.ca
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/