Messages in this thread | | | From | "Paul Fulghum" <> | Subject | Re: ppp_synctty and in_interrupt | Date | Thu, 13 Jun 2002 10:06:00 -0500 |
| |
> I am currently developing a tty-Driver which is used for synchronous PPP. > ... > The ppp_synctty ldisc only calls my ttywrite function in interrupt context. > But to avoid a race condition I must include a Semaphore in my ttywrite > function, so I get a Kernel Oops when this Semaphore causes a call to > schedule(). > > Is there a way to stop this ppp_synctty ldisc from sending in Interrupt > Context? > or > Why does this ldisc only write in interrupt context? > > Please CC your replay to klaus.herb@ikon-gmbh.de
It should not call the tty write function in interrupt context.
The ldisc will call the tty write in two situtations: 1. when a new packet to send is available 2. when the tty driver calls the ldisc write_wakeup to send queued frames
My guess is that your driver is calling write_wakeup in an interrupt context (in response to a tx complete IRQ). You should call write_wakeup() from a bottom half handler scheduled by the interrupt service routine instead of directly from the ISR.
Paul Fulghum, paulkf@microgate.com Microgate Corporation, www.microgate.com
- 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/
| |