By looking at spinlocks and thinking better to the lock problems for pps_events() I found this (possible) solution... The pps_event() is now protected by a spinlock against pps_register_source() and pps_unregister_source(), but since I cannot disable IRQs I used the spin_trylock() into the pps_events() so even if the process context holds the lock and an PPS event arrives (IRQ) the system doesn't hang. Note that we cannot lose an event without problems. It could be more acceptable? I removed the "volatile" attribute! :) Rodolfo -- GNU/Linux Solutions e-mail: giometti@enneenne.com Linux Device Driver giometti@gnudd.com Embedded Systems giometti@linux.it UNIX programming phone: +39 349 2432127