aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/char/isicom.c12
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 = {
171static int prev_card = 3; /* start servicing isi_card[0] */ 171static int prev_card = 3; /* start servicing isi_card[0] */
172static struct tty_driver *isicom_normal; 172static struct tty_driver *isicom_normal;
173 173
174static DECLARE_COMPLETION(isi_timerdone);
175static char re_schedule = 1;
176
177static void isicom_tx(unsigned long _data); 174static void isicom_tx(unsigned long _data);
178static void isicom_start(struct tty_struct *tty); 175static 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 */
504sched_again: 501sched_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
1891static void __exit isicom_exit(void) 1883static 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);