Re: deadlock avoidance?

Alan Cox (alan@lxorguk.ukuu.org.uk)
Tue, 7 Dec 1999 20:20:55 +0000 (GMT)


> The problem is I acquire a spin lock before walking the list and release
> it when finished.

Ok

> I also acquire the same spin lock before modifying the list and release
> it when done. This is what causes the deadlock. I can possibly attempt
> to acquire the spin lock when it's already acquired inside the interrupt
> handler.

This occurs in a couple of sound drivers too. I ended up with

__dothing() which assumes you own the lock, and dothing() which is a wrapper
taking the lock and calling __dothing().

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