Re: Irq context wrong for USB ACM serial driver calling PPP?

From: Alan Cox (alan@lxorguk.ukuu.org.uk)
Date: Mon Mar 06 2000 - 19:24:04 EST


> PPP's write_wakeup then does some complicated stuff which isn't quite
> irq safe, but could probably be made so.

(2.3.x ppp is probably not SMP safe anyway - it has bugs in it that are
 fixed in 2.2.15pre but not yet 2.3.x)

> Are you saying that the line discipline's write_wakeup should be a
> simple function to queue the line discipline's BH (that's what "wakeup"
> means to me), or that write_wakeup must be called from BH context by the
> serial driver?

Take a look at the transmit interrupt handling in the serial.c code. The
irq code polls the THRE bit and if it indicates room it stuffs bytes down
the pipe

If the internal buffer is empty it wakes up a task queue on tq_serial. The
bh context code calls the ldisc wakeup

Alan

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



This archive was generated by hypermail 2b29 : Tue Mar 07 2000 - 21:00:21 EST