вы имели в виду отключение всех прерываний в системе? На самом деле это не очень хорошая идея.
Если у вас есть раздел кода, и вы хотите убедиться, что неожиданное прерывание не мешает, взгляните на spin_lock_irqsave(). Это отключит прерывания локально. Когда вы закончите, вы можете использовать spin_lock_irqrestore().
Если вы обеспокоены только обновлением переменной, вы можете подумать о ее атомарности (atomic_t).
Наконец, если вы думаете только о отключении прерываний от вашего оборудования char, когда драйвер выполняет определенную функцию, это зависит от оборудования. Например, для LSI 1068E вам необходимо записать 0xFFFFFFFF в регистр IntMask. Вы также можете попросить ядро отключить строку прерывания, используя disable_irq() в этой строке прерывания, но это, вероятно, не то, что вы хотите.
ic, это значит, что мне нужно добавить spin_lock Спасибо – Pui