baron · 2020年05月21日

linux kernel中的local_irq_enable/disable只是开关irq对吗?

在linux kernel arm64代码中:local_irq_enable/disable只是开关irq对吗? 只操作了irq的比特位,没有操作serror、fiq、debug比特位

另外,在linux kernel中,找不到操作FIQ,SERROR,DEBUG 比特位的地方, 在linux kernel中是不是不需要FIQ。

SERROR、DEBUG位可能是在bootloader中打开的。

请极术小姐姐来回答,我理解对吗??

static inline void arch_local_irq_enable(void)
{

asm volatile(
    "msr    daifclr, #2        // arch_local_irq_enable"
    :
    :
    : "memory");

}

static inline void arch_local_irq_disable(void)
{

asm volatile(
    "msr    daifset, #2        // arch_local_irq_disable"
    :
    :
    : "memory");

}

你的回答