Hi, I'm trying to implement a timer, which on each timer interrupt wakes up every process that got blocked by a read call. My problem is the following: if I'm insmod'ing the module (I've attached the file) the execution gets blocked on the wake_up_interruptible(&timer_queue); call. If I'm uncommenting this line everything goes smooth and the timer counts without problems. Does somebody have a hint? Some ideas? Regards Juergen void timerEvent(unsigned long arg) { tick_count++; wake_up_interruptible(&timer_queue); timer.expires= jiffies + timer_delay; add_timer(&timer); } int __init init_timer_module(void) { /* Create the proc entry and make it readable and writeable by all - 0666 */ timer_file = create_proc_entry("timer", 0666, NULL); if (timer_file == NULL) { return -ENOMEM; } /* Set timer_file fields */ timer_file->read_proc = &proc_read_timer; timer_file->write_proc = &proc_write_timer; timer_file->owner = THIS_MODULE; SET_MODULE_OWNER(&timer_fops); /* register /dev/tick */ register_chrdev(TICK_MAJOR, "tick", &timer_fops); init_timer(&timer); timer.expires= jiffies + timer_delay; timer.function=timerEvent; timer.data=42; add_timer(&timer); /* everything initialized */ printk(KERN_INFO "%s %s initialized\n", MODULE_NAME, MODULE_VERSION); return 0; } -- HoHoHo! Seid Ihr auch alle schön brav gewesen? GMX Weihnachts-Special: Die 1. Adresse für Weihnachts- männer und -frauen! http://www.gmx.net/de/cgi/specialmail +++ GMX - die erste Adresse für Mail, Message, More! +++