Hi, I have a few basic doubts. I am writing a kernel module which receives data from multiple tcp sockets. I use the data_ready callback to get the data from the sockets. 1> Am I correct that the data_ready is called in the context of the bottom half processing as part of the interrupt caused by the n/w device 2. I need to synchrnoise between the data_ready callback and some kernel thread, both of which access a shared resource. I guess vanilla spin_lock can cause deadlock as the data_ready callback would chuck the kernel threadprocess out and if the spin_lock is taken by the thread the callback would spin away to infinity causing deadlock. 3. Will spin_lock_bh help? In other words if I take the lock using spin_lock_bh then is there a chance that I will miss the callback if I hold the the spin_lock for a sufficiently long time. 4. Is there a simple way to go about this. Thanks -Himanshu __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html