标签: c linux-kernel synchronization locking mutex
我已经看到内核代码中的许多unlocked_ioctl()函数根本没有使用任何数据同步(互斥量,信号量等)。他们中的一些人使用mutex_lock() 这是无法睡眠的,但是我记得copy_to_user()/copy_from_user()是可以睡眠的,因此对我来说看起来不正确。我之所以没有将其用于设备驱动程序开发,主要是因为我所处理的硬件根本不支持多进程,所以这是不可能的。
unlocked_ioctl()
mutex_lock()
copy_to_user()/copy_from_user()
只是想知道unlocked_ioctl()首选哪种同步机制,以防我需要使用一种同步机制?