Re: Deadlock in serial driver 2.6.x

From: Russell King
Date: Sun Jan 30 2005 - 11:53:28 EST


On Sun, Jan 30, 2005 at 03:39:32PM +0000, Alan Cox wrote:
> On Iau, 2005-01-27 at 07:13, Andrew Morton wrote:
> > Martin Kögler <e9925248@xxxxxxxxxxxxxxxxxxxx> wrote:
> > (For some reason the NMI watchdog isn't triggering here, and it's still
> > taking interrupts).
>
> > Looks like low-latency mode is busted.
>
> low latency mode is fine, the drivers/serial layer is busted. It workd
> fine with non drivers/serial using hardware still, and it worked fine in
> 2.4

Unfortunately it creates a major locking problem. We need to hold the
spinlock because we're using the port structures and relying on things
like the tty structure staying around during the interrupt processing.

We call into the tty layer, and the tty layer calls us back via the
write method, (for echo purposes) and that's indistinguishable from
user-level or other kernel-level writes.

Unsolvable as the tty layer currently stands. tty needs to not call back
into serial drivers when they supply read characters from their interrupt
functions.

tty layer's busted. 8)

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-
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/