lkml.org 
[lkml]   [2002]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: ppp_synctty and in_interrupt
Date
> 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/

\
 
 \ /
  Last update: 2005-03-22 13:26    [W:0.664 / U:0.100 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site