Wenn der Code wie untenNested spin_lock_irqsave
void test(void)
{
spin_lock_irqsave(&lock1, flag);
...
func1();
...
spin_unlock_irqrestore(&lock1, flag);
}
void func1(void)
{
spin_lock_irqsave(&lock2, flag);
...
spin_unlock_irqrestore(&lock2, flag);
}
Wird es Problem sein, mit dem Code? Wenn der spin_unlock_irqrestore
in func1 aufgerufen wird, wird der Interrupt bereits aktiviert? Was ich erreichen möchte, ist test()
Routine kann ohne Unterbrechung durch Scheduler oder Interrupts ausgeführt werden. Vielen Dank
Eigentlich ist das der spring_lock_irqsave()/spin_unlock_irq_restore() 'zusätzlich zu' spin_lock_irq()/spin_unlock_irq() '. – ninjalj