On Mon, 11 Sep 2000, Roland Dubouloz wrote:

> But i cannot disable the interrupts !!
> 
> My code :
> 
>     rtl_hard_savef_and_cli(irqflag);
> 
>     startdma()

What startdma() does? May be it enables interrupts again?

> 
>     interruptible_sleep_on(&request->sleep);

I know for sure that interruptible_sleep_on does "soft" sti(). It either does 
"hard" sti() in RTL, or it may hang the system. Anyway,
interruptible_sleep_on is definitely non-RT function. It will switch you to
user space processes. 

> 
>     rtl_hard_restore_flags(irqflag);

> if i start a small dma transfert I receive  the interrupts before  i
> call  the "interruptible_sleep_on()" .
> (If  i start a very large transfert (128Ko) i can call
> "interruptible_on_sleep" before the dma is finished)
> 
> i work  on a 386 SX   and the driver is called from a Rt task .

I do not know what do you want to achive, but for sure this is wrong way.

Try to use pthread_wait_np() or RT semaphore. What is waking up
request->sleep ?

Best regards,
--
Tomek

-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/

Reply via email to