Гуглил, читал linux/Documentation/ но сходу не нашел, плохо или нет применять nested спинлоки в ядерном коде применительно к ядру 2.4.20 (саппорт старой железки). Приведу пример:
spinlock_t my_lock;
int f1()
{
unsigned long flags;
spin_lock_irqsave(&my_lock, flags);
f2();
spin_unlock_irqrestore(&my_lock, flags);
}
int f2()
{
unsigned long flags;
spin_lock_irqsave(&my_lock, flags);
/* do something */
spin_unlock_irqrestore(&my_lock, flags);
}
Правильно или нет при таком раскладе ставить спинлоки в f2(), раз уж она вызывается из f1()?
Спасибо!