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

Zwane Mwaikambo (zwane@linuxpower.ca)
Sun, 11 May 2003 12:13:10 -0400 (EDT)


On Sun, 11 May 2003, Daniel Ritz wrote:

> hi
>
> i see that one on shutdown with a xircom ce3 10/100 16bit pcmcia network card,
> driver xirc2ps_cs. the netdevice also never gets free, so the shutdown never
> finishs. 2.5.68 also doesn't work, 2.5.67 does work.

Interesting, eject with one of my PCMCIA (smc91c92) network cards also
triggers an unhandled interrupt. I think the IRQ_NONE is incorrect here as
the device really may have an interrupt to service.

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 11 May 2003 15:20:03 -0000
@@ -1312,7 +1312,7 @@ xirc2ps_interrupt(int irq, void *dev_id,
*/

if (!netif_device_present(dev))
- return IRQ_NONE;
+ goto out;

ioaddr = dev->base_addr;
if (lp->mohawk) { /* must disable the interrupt */
@@ -1515,6 +1515,7 @@ xirc2ps_interrupt(int irq, void *dev_id,
* force an interrupt with this command:
* PutByte(XIRCREG_CR, EnableIntr|ForceIntr);
*/
+ out:
return IRQ_RETVAL(handled);
} /* xirc2ps_interrupt */

> unregister_netdevice: waiting for eth0 to become free. Usage count = 2
> unregister_netdevice: waiting for eth0 to become free. Usage count = 2
> unregister_netdevice: waiting for eth0 to become free. Usage count = 2
> unregister_netdevice: waiting for eth0 to become free. Usage count = 2

I can reproduce this, i'll have a look.

-- 
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/