On Tue, Apr 29, 2008 at 05:26:07PM +0200, Olivier Galibert wrote:
The joys of parallelism. The serial drivers mostly do this because they
are using the BKL for open/close paths being a bit prehistoric (its on
the hit list ;))
CPU #1
open
port->xmit_buf == NULL
get_zeroed_page [Can sleep dropping BKL]
CPU #2
get_zeroed_page
port->xmit_buf == NULL
port->xmit_buf = page
CPU #1
port->xmit_buf != NULL
free page
A fine example of why proper locking is good ;)
--