diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-15 03:00:04 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-15 03:00:04 +0000 |
commit | b9bc325e1946507c23965bdeda759f7dbbbbb6a7 (patch) | |
tree | 13ef25ff2fac456c03c1b6f72508620cd1d77042 /drivers/char | |
parent | d8a67d159433e18c716493c5b39e59d6df7ebeb8 (diff) |
Make sure we don't add timers back in history. This gets serial
console working again. Tytso is notified.
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/serial.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/char/serial.c b/drivers/char/serial.c index 105137a92..d8f077deb 100644 --- a/drivers/char/serial.c +++ b/drivers/char/serial.c @@ -1066,15 +1066,19 @@ static void rs_timer(unsigned long dummy) mod_timer(&serial_timer, jiffies + RS_STROBE_TIME); if (IRQ_ports[0]) { + unsigned long next; save_flags(flags); cli(); #ifdef CONFIG_SERIAL_SHARE_IRQ rs_interrupt(0, NULL, NULL); #else rs_interrupt_single(0, NULL, NULL); #endif + + next = jiffies + IRQ_timeout[0] - 2; + if (next < jiffies + 1) + next = jiffies + 1; + mod_timer(&serial_timer, next); restore_flags(flags); - - mod_timer(&serial_timer, jiffies + IRQ_timeout[0] - 2); } } |