diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2007-02-10 04:45:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-11 13:51:30 -0500 |
commit | c251ae0d7514563c7fdace0d390175454761228b (patch) | |
tree | 9c5afc780dfa03880160cf38db1d2e655aa9cf90 /drivers/char/moxa.c | |
parent | 11324edd4ad34981764b25bed44d46a1507b62e1 (diff) |
[PATCH] Char: moxa, use del_timer_sync
Use del_timer_sync in most timer deletions, we don't want to oops in the timer
function.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/moxa.c')
-rw-r--r-- | drivers/char/moxa.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/char/moxa.c b/drivers/char/moxa.c index da2a1d1690bf..9eb8fa6dd168 100644 --- a/drivers/char/moxa.c +++ b/drivers/char/moxa.c | |||
@@ -424,10 +424,10 @@ static void __exit moxa_exit(void) | |||
424 | if (verbose) | 424 | if (verbose) |
425 | printk("Unloading module moxa ...\n"); | 425 | printk("Unloading module moxa ...\n"); |
426 | 426 | ||
427 | del_timer(&moxaTimer); | 427 | del_timer_sync(&moxaTimer); |
428 | 428 | ||
429 | for (i = 0; i < MAX_PORTS; i++) | 429 | for (i = 0; i < MAX_PORTS; i++) |
430 | del_timer(&moxaEmptyTimer[i]); | 430 | del_timer_sync(&moxaEmptyTimer[i]); |
431 | 431 | ||
432 | if (tty_unregister_driver(moxaDriver)) | 432 | if (tty_unregister_driver(moxaDriver)) |
433 | printk("Couldn't unregister MOXA Intellio family serial driver\n"); | 433 | printk("Couldn't unregister MOXA Intellio family serial driver\n"); |
@@ -529,7 +529,7 @@ static void moxa_close(struct tty_struct *tty, struct file *filp) | |||
529 | if (ch->asyncflags & ASYNC_INITIALIZED) { | 529 | if (ch->asyncflags & ASYNC_INITIALIZED) { |
530 | setup_empty_event(tty); | 530 | setup_empty_event(tty); |
531 | tty_wait_until_sent(tty, 30 * HZ); /* 30 seconds timeout */ | 531 | tty_wait_until_sent(tty, 30 * HZ); /* 30 seconds timeout */ |
532 | del_timer(&moxaEmptyTimer[ch->port]); | 532 | del_timer_sync(&moxaEmptyTimer[ch->port]); |
533 | } | 533 | } |
534 | shut_down(ch); | 534 | shut_down(ch); |
535 | MoxaPortFlushData(port, 2); | 535 | MoxaPortFlushData(port, 2); |
@@ -1004,7 +1004,7 @@ static void check_xmit_empty(unsigned long data) | |||
1004 | struct moxa_str *ch; | 1004 | struct moxa_str *ch; |
1005 | 1005 | ||
1006 | ch = (struct moxa_str *) data; | 1006 | ch = (struct moxa_str *) data; |
1007 | del_timer(&moxaEmptyTimer[ch->port]); | 1007 | del_timer_sync(&moxaEmptyTimer[ch->port]); |
1008 | if (ch->tty && (ch->statusflags & EMPTYWAIT)) { | 1008 | if (ch->tty && (ch->statusflags & EMPTYWAIT)) { |
1009 | if (MoxaPortTxQueue(ch->port) == 0) { | 1009 | if (MoxaPortTxQueue(ch->port) == 0) { |
1010 | ch->statusflags &= ~EMPTYWAIT; | 1010 | ch->statusflags &= ~EMPTYWAIT; |