driver's sleep() not returning ?
Carlos Mendioroz
tron at mrecvax.UUCP
Sat Nov 19 07:24:25 AEST 1988
Has anybody seen sleep() not returning even though wakeup() has
been called ?
In a litle driver that has a ioctl() interface and an interrupt
service routine, I call sleep to wait for the device to complete
its function and then wakeup (from xxintr()) to restart execution.
Also, as I don't have a 100% probability of the device function to
complete, there is a timeout() that calls another wakeup().
So far, so good. But...
Sometimes, the ioctl() never returns. A ps will tell you that the
corresponding process is running (no WCHAN), the device shows no
activity and the process is "inmortal". (No response to any signal)
By adding some debug code, I have stated that the sleep() doesn't
return although wakeup() is called twice. (xxintr & xxtimeout)
Any help will be apreciated!
--
----
Carlos G. Mendioroz <tron at mrecvax.mrec.ar>
Work: +54 (1) 313-8082 Fax: +54 (1) 311-1249
Home: +54 (1) 71-3473 ; Malabia 2659 11 B, Buenos Aires, 1425 ARGENTINA
More information about the Comp.unix.questions
mailing list