|
Hi,
How did you come to idea pass the wake_up_interruptible() function function as timer callback!? Not a wonder that the system hangs up. You should do the following: 1. Make pc39_wq a global variable and initialize it to NULL. 2. See code: ... the code above
if (wait) {
init_timer (&pc39_tl);
pc39_tl.expires = PC39_SELTO;
pc39_tl.function = your_timer_function;
pc39_tl.data = (unsigned long) &pc39_wq;
add_timer (&pc39_tl);
select_wait (&pc39_wq, wait);
}
return(0);
}
void your_timer_funtion( unsigned long data )
{
wake_up_interruptible(&pc39_wq);
}
I suppose that you've already solved your problem, but this post may be of use for the others. Miran
|