static void TeleInt_Timer(struct IsdnCardState *cs) { int stat = 0; if (cs->bcs[0].mode) { stat |= 1; main_irq_hfc(&cs->bcs[0]); } if (cs->bcs[1].mode) { stat |= 2; main_irq_hfc(&cs->bcs[1]); } cs->hw.hfc.timer.expires = jiffies + 1; add_timer(&cs->hw.hfc.timer); }
static void TeleInt_Timer(struct IsdnCardState *cs) { int stat = 0; u_long flags; spin_lock_irqsave(&cs->lock, flags); if (cs->bcs[0].mode) { stat |= 1; main_irq_hfc(&cs->bcs[0]); } if (cs->bcs[1].mode) { stat |= 2; main_irq_hfc(&cs->bcs[1]); } spin_unlock_irqrestore(&cs->lock, flags); stat = HZ/100; if (!stat) stat = 1; cs->hw.hfc.timer.expires = jiffies + stat; add_timer(&cs->hw.hfc.timer); }