Re: 2.5.66-mm2-1 freezes solid after init PCMCIA

Russell King (rmk@arm.linux.org.uk)
Tue, 1 Apr 2003 20:46:45 +0100


On Tue, Apr 01, 2003 at 03:02:16PM +0200, Felipe Alfaro Solana wrote:
> OK, here we go...

I was thinking that it could be due to the pci changes - that's one of
the areas I've been working in recently which could have caused this.

However, I believe it is to do with the recent PCMCIA changes to use
the device model, and deadlock within the device model itself.

What basically seems to be happening is this:

- the ds module is inserted
- ds registers a driver model interface for pcmcia socket drivers,
which takes the global devclass_sem.
- ds causes the pcmcia core to evaluate the status of the sockets, and
perform "card insertion" processing if cards are present.
- this processing detects a cardbus card, and calls the cardbus code to
scan pci devices, and add them to the device tree.
- each device gets passed to the device model's class layer, which tries
to take devclass_sem. But wait! We've locked it while initialising
the ds module -> deadlock.

I'm currently working on the card insertion/removal code which hopefully
should fix this. However, it's not going to be immediately available,
so please be patient.

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

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