On (23/03/30 09:23), Linus Torvalds wrote: > Although we also do have some other issues - I think down_trylock() is > ok in irq contexts, but mutex_trylock() is not. Maybe that's why > printk uses semaphores? I forget. Yes, correct. IIRC we also cannot safely call mutex_unlock() from IRQ context because it takes some internal mutex spin_lock in a non-IRQ-safe manner. Semaphore is OK in this regard, both semaphore try_lock() and unlock() can be called from IRQ.