Я пишу модуль ядра Linux, который предоставляет (виртуальное) блочное устройство (поэтому фактический аппаратный IO не выполняется).
В настоящее время я использую spin_lock_irqsave / spin_unlock_irqrestore для обработки блокировок.
В непроцессном контексте работает только одна функция, и это функция make_request блочного устройства.
Безопасно ли использовать spin_lock_bh / spin_unlock_bh для обработки блокировок?Я предполагаю, что простого spin_lock недостаточно, поскольку make_request не запускается процессом (это правильно?).
Заранее спасибо.