Hello all:

I am implementing a scheduler in the kernel for scheduling the 
transmission of cells. I have a function to queue the packet to 
one of the three queues (skb lists) that  I maintain. I also 
have the scheduler function that goes off periodically and reads 
from the queues and sends it out on the actual interface. 

When I close the socket, I want to ensure that all the cells have
been transmitted, so from close, I do this:

 {
    save_flags(flags);
    cli();
    qos->wait_flag=1;
    interruptible_sleep_on(&qos->wq);
    restore_flags(flags);
 }

And in the scheduler, I do
  
 if (!queues_empty && qos->wait_flag==1)
    {
        save_flags(flags);
        cli();
        wake_up_interruptible(&qos->wq);
        qos->wait_flag=0;
        restore_flags(flags);
    }
But when I execute this, the machine crashes at interruptible_sleep_on.
It actually crahes in the schedule () function in interruptible_sleep_on.
I am not sure if I am using interruptible_sleep_on & wake_up_interruptible
the right way.
Any help would be highly appreciated.
Thanks,
Sarav

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to