kernel 2.4.16 on a single processor machine. I register a callback with dev_add_pack() to analyze socket buffers in a kernel module. I register a routine in a task queued to tq_timer. The timer routine every n ticks writes on a free slot of a ring buffer (linked list). The same ring buffer is accessed by the net device callback (it writes too). The ring buffer is read (therefore freed) by a task queued with schedule_task. It seems that the net device callback and the timer routine run "concurrently" or one interrupts the other. In fact, in either function, checking the current slot given by the ring buffer, sometimes it is partially used by the other, e.g. the next free slot is not free, it's used... Do I need to use some synchronization mechanism between the two routines? Are they like interrupts? Thanks in advance for help and explanations. Roberto. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/