Это объясняется в комментариях для down_interruptible и down_killable
TLDR;вниз не позволяет вам прерывать, когда он спит, то есть не получил семафор.где, как эти два выхода с -EINR, так отзывчивый код.
понимает использование этой функции down () Получает семафор.Если больше нет задач для получения семафора, вызов этой функции переводит задачу в спящий режим до освобождения семафора.это означает, что он не будет прерван, если вызывающий процесс был прерван.или убит.Базовая логика отличается от второго аргумента до _down_common ()
Поэтому предлагается использовать любое из двух предложений, чтобы оно могло быть обработано в случае прерывания.Также нет смысла хранить его после того, как вызов был убит.
Основные функции, которые устарели, скорее всего, будут прекращены в будущем.в этом случае это не так, как доступно до сих пор в 4.16, который является последним ядром при написании этого.