diff options
Diffstat (limited to 'drivers/char/synclink.c')
-rw-r--r-- | drivers/char/synclink.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/char/synclink.c b/drivers/char/synclink.c index 3fa625db9e4b..ce4db6f52362 100644 --- a/drivers/char/synclink.c +++ b/drivers/char/synclink.c | |||
@@ -1148,10 +1148,8 @@ static void mgsl_bh_transmit(struct mgsl_struct *info) | |||
1148 | printk( "%s(%d):mgsl_bh_transmit() entry on %s\n", | 1148 | printk( "%s(%d):mgsl_bh_transmit() entry on %s\n", |
1149 | __FILE__,__LINE__,info->device_name); | 1149 | __FILE__,__LINE__,info->device_name); |
1150 | 1150 | ||
1151 | if (tty) { | 1151 | if (tty) |
1152 | tty_wakeup(tty); | 1152 | tty_wakeup(tty); |
1153 | wake_up_interruptible(&tty->write_wait); | ||
1154 | } | ||
1155 | 1153 | ||
1156 | /* if transmitter idle and loopmode_send_done_requested | 1154 | /* if transmitter idle and loopmode_send_done_requested |
1157 | * then start echoing RxD to TxD | 1155 | * then start echoing RxD to TxD |
@@ -1800,9 +1798,7 @@ static int startup(struct mgsl_struct * info) | |||
1800 | 1798 | ||
1801 | memset(&info->icount, 0, sizeof(info->icount)); | 1799 | memset(&info->icount, 0, sizeof(info->icount)); |
1802 | 1800 | ||
1803 | init_timer(&info->tx_timer); | 1801 | setup_timer(&info->tx_timer, mgsl_tx_timeout, (unsigned long)info); |
1804 | info->tx_timer.data = (unsigned long)info; | ||
1805 | info->tx_timer.function = mgsl_tx_timeout; | ||
1806 | 1802 | ||
1807 | /* Allocate and claim adapter resources */ | 1803 | /* Allocate and claim adapter resources */ |
1808 | retval = mgsl_claim_resources(info); | 1804 | retval = mgsl_claim_resources(info); |
@@ -1853,7 +1849,7 @@ static void shutdown(struct mgsl_struct * info) | |||
1853 | wake_up_interruptible(&info->status_event_wait_q); | 1849 | wake_up_interruptible(&info->status_event_wait_q); |
1854 | wake_up_interruptible(&info->event_wait_q); | 1850 | wake_up_interruptible(&info->event_wait_q); |
1855 | 1851 | ||
1856 | del_timer(&info->tx_timer); | 1852 | del_timer_sync(&info->tx_timer); |
1857 | 1853 | ||
1858 | if (info->xmit_buf) { | 1854 | if (info->xmit_buf) { |
1859 | free_page((unsigned long) info->xmit_buf); | 1855 | free_page((unsigned long) info->xmit_buf); |
@@ -2340,7 +2336,6 @@ static void mgsl_flush_buffer(struct tty_struct *tty) | |||
2340 | del_timer(&info->tx_timer); | 2336 | del_timer(&info->tx_timer); |
2341 | spin_unlock_irqrestore(&info->irq_spinlock,flags); | 2337 | spin_unlock_irqrestore(&info->irq_spinlock,flags); |
2342 | 2338 | ||
2343 | wake_up_interruptible(&tty->write_wait); | ||
2344 | tty_wakeup(tty); | 2339 | tty_wakeup(tty); |
2345 | } | 2340 | } |
2346 | 2341 | ||
@@ -5713,8 +5708,8 @@ static void usc_start_transmitter( struct mgsl_struct *info ) | |||
5713 | 5708 | ||
5714 | usc_TCmd( info, TCmd_SendFrame ); | 5709 | usc_TCmd( info, TCmd_SendFrame ); |
5715 | 5710 | ||
5716 | info->tx_timer.expires = jiffies + msecs_to_jiffies(5000); | 5711 | mod_timer(&info->tx_timer, jiffies + |
5717 | add_timer(&info->tx_timer); | 5712 | msecs_to_jiffies(5000)); |
5718 | } | 5713 | } |
5719 | info->tx_active = 1; | 5714 | info->tx_active = 1; |
5720 | } | 5715 | } |