Re: 2.6.17-mm5 + pcmcia/hostap/8139too patches -- inconsistent{hardirq-on-W} -> {in-hardirq-W} usage

From: Alan Cox
Date: Tue Jul 04 2006 - 05:08:35 EST


Ar Llu, 2006-07-03 am 16:14 -0700, ysgrifennodd Miles Lane:
> eth2: NE2000 (DL10022 rev 30): io 0x300, irq 11, hw_addr 00:50:BA:73:92:3D
> Which seems to indicate I need to tweak the PCMCIA settings to get this card
> working. I wonder if anyone is going to follow up on enabling shared IRQ
> support.


Try this. Note the SMP locking in this driver appears iffy and looks
like it was never SMP sane.

--- linux.vanilla-2.6.17/drivers/net/pcmcia/pcnet_cs.c 2006-06-19 17:29:46.000000000 +0100
+++ linux-2.6.17/drivers/net/pcmcia/pcnet_cs.c 2006-07-04 09:55:07.695012656 +0100
@@ -25,6 +25,8 @@
Based also on Keith Moore's changes to Don Becker's code, for IBM
CCAE support. Drivers merged back together, and shared-memory
Socket EA support added, by Ken Raeburn, September 1995.
+
+ FIXME: Not SMP safe

======================================================================*/

@@ -254,7 +256,7 @@
info->p_dev = link;
link->priv = dev;

- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
+ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
link->irq.IRQInfo1 = IRQ_LEVEL_ID;
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
@@ -998,7 +1000,8 @@
link->open++;

set_misc_reg(dev);
- request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev);
+ if (request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev) < 0)
+ return -EBUSY;

info->phy_id = info->eth_phy;
info->link_status = 0x00;

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