Я видел, что многие функции unlocked_ioctl()
из кода ядра вообще не используют синхронизацию данных (мьютекс, семафор и т. Д.).Некоторые из них используют mutex_lock()
, который не спит, но, насколько я помню, copy_to_user()/copy_from_user()
спит, поэтому мне не кажется правильным .Я не использовал это для разработки драйверов устройств главным образом потому, что оборудование, с которым я имел дело, вообще не поддерживает множественные процессы, поэтому об этом не может быть и речи.
Просто интересно, какой механизм синхронизации предпочтителен для unlocked_ioctl()
весли мне нужно использовать один?