К вашему сведению, флаг IRQF _DISABLED был полностью удален из ядра Linux, см. это обновление .
Основными двумя причинами, которые привели к полному исключению флага, были
Кроме того, важно, чтобы 99,999% обработчиков прерываний ядра завершались как можно раньше, и обратите внимание, что помогает некоторый механизм отсрочки. Следовательно, наличие флага IRQF _DISABLED в зависимости от характеристик прерывания (, является ли оно быстрым или медленным ), не имеет смысла.
И чтобы ответить на ваш вопрос, он не обрабатывает прерывания одно за другим, когда вы сбрасываете флаг IRQF _DISABLED, потому что другое прерывание может прервать выполнение вашего обработчика прерывания; и это было причиной того, что переполнение может произойти, когда флаг не установлен. Кроме того, пожалуйста, обратитесь к этой статье для получения дополнительной информации