diff options
-rw-r--r-- | drivers/char/isicom.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c index b133b92a0ad5..2f8aaf8f8232 100644 --- a/drivers/char/isicom.c +++ b/drivers/char/isicom.c | |||
@@ -171,9 +171,6 @@ static struct pci_driver isicom_driver = { | |||
171 | static int prev_card = 3; /* start servicing isi_card[0] */ | 171 | static int prev_card = 3; /* start servicing isi_card[0] */ |
172 | static struct tty_driver *isicom_normal; | 172 | static struct tty_driver *isicom_normal; |
173 | 173 | ||
174 | static DECLARE_COMPLETION(isi_timerdone); | ||
175 | static char re_schedule = 1; | ||
176 | |||
177 | static void isicom_tx(unsigned long _data); | 174 | static void isicom_tx(unsigned long _data); |
178 | static void isicom_start(struct tty_struct *tty); | 175 | static void isicom_start(struct tty_struct *tty); |
179 | 176 | ||
@@ -502,11 +499,6 @@ unlock: | |||
502 | spin_unlock_irqrestore(&isi_card[card].card_lock, flags); | 499 | spin_unlock_irqrestore(&isi_card[card].card_lock, flags); |
503 | /* schedule another tx for hopefully in about 10ms */ | 500 | /* schedule another tx for hopefully in about 10ms */ |
504 | sched_again: | 501 | sched_again: |
505 | if (!re_schedule) { | ||
506 | complete(&isi_timerdone); | ||
507 | return; | ||
508 | } | ||
509 | |||
510 | mod_timer(&tx, jiffies + msecs_to_jiffies(10)); | 502 | mod_timer(&tx, jiffies + msecs_to_jiffies(10)); |
511 | } | 503 | } |
512 | 504 | ||
@@ -1890,9 +1882,7 @@ error: | |||
1890 | 1882 | ||
1891 | static void __exit isicom_exit(void) | 1883 | static void __exit isicom_exit(void) |
1892 | { | 1884 | { |
1893 | re_schedule = 0; | 1885 | del_timer_sync(&tx); |
1894 | |||
1895 | wait_for_completion_timeout(&isi_timerdone, HZ); | ||
1896 | 1886 | ||
1897 | pci_unregister_driver(&isicom_driver); | 1887 | pci_unregister_driver(&isicom_driver); |
1898 | tty_unregister_driver(isicom_normal); | 1888 | tty_unregister_driver(isicom_normal); |