Возможно ли, что обработчик прерывания драйвера вызывается до завершения проверки?

Вы не можете складывать/вкладывать параметры в Bash, поэтому даже

echo "${${q:16:6}/,/.}"

будет работать. (Вложенные расширения, подобные этому, действительно работают в Zsh.)

Если вы хотите остаться в Bash, вам нужно использовать временную переменную:

foo="${q:16:6}"
echo "${foo/,/.}"
1
07.04.2020, 15:20
1 ответ

Обработчик прерывания может быть вызван, пока проверка еще не завершена. Однако, чтобы это произошло, устройство должно быть инициализировано и сгенерировано прерывание. Довольно часто функция probe сначала инициализирует устройство и гарантирует, что оно не будет генерировать прерывания, прежде чем запрашивать прерывание. Это гарантирует, что обработчик не будет вызываться до тех пор, пока драйвер не будет готов обрабатывать прерывания.

Одним из распространенных исключений являются драйверы RTC, и я недавно исправил некоторые из них. Это происходит потому, что RTC все еще работает, а Linux нет, и драйвер не должен повторно инициализировать устройство каждый раз при его загрузке. Вот один пример:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=10d0c768cc6d581523d673b9d1b54213f8a5eb24

1
28.04.2021, 23:18

Теги

Похожие вопросы