aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2007-02-10 04:45:32 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-11 13:51:30 -0500
commitc251ae0d7514563c7fdace0d390175454761228b (patch)
tree9c5afc780dfa03880160cf38db1d2e655aa9cf90 /drivers/char
parent11324edd4ad34981764b25bed44d46a1507b62e1 (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')
-rw-r--r--drivers/char/moxa.c8
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;