diff options
Diffstat (limited to 'drivers/serial/crisv10.c')
-rw-r--r-- | drivers/serial/crisv10.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c index 30626440a062..c856905bb3bd 100644 --- a/drivers/serial/crisv10.c +++ b/drivers/serial/crisv10.c | |||
@@ -3935,7 +3935,6 @@ static void rs_wait_until_sent(struct tty_struct *tty, int timeout) | |||
3935 | * Check R_DMA_CHx_STATUS bit 0-6=number of available bytes in FIFO | 3935 | * Check R_DMA_CHx_STATUS bit 0-6=number of available bytes in FIFO |
3936 | * R_DMA_CHx_HWSW bit 31-16=nbr of bytes left in DMA buffer (0=64k) | 3936 | * R_DMA_CHx_HWSW bit 31-16=nbr of bytes left in DMA buffer (0=64k) |
3937 | */ | 3937 | */ |
3938 | lock_kernel(); | ||
3939 | orig_jiffies = jiffies; | 3938 | orig_jiffies = jiffies; |
3940 | while (info->xmit.head != info->xmit.tail || /* More in send queue */ | 3939 | while (info->xmit.head != info->xmit.tail || /* More in send queue */ |
3941 | (*info->ostatusadr & 0x007f) || /* more in FIFO */ | 3940 | (*info->ostatusadr & 0x007f) || /* more in FIFO */ |
@@ -3952,7 +3951,6 @@ static void rs_wait_until_sent(struct tty_struct *tty, int timeout) | |||
3952 | curr_time_usec - info->last_tx_active_usec; | 3951 | curr_time_usec - info->last_tx_active_usec; |
3953 | } | 3952 | } |
3954 | set_current_state(TASK_RUNNING); | 3953 | set_current_state(TASK_RUNNING); |
3955 | unlock_kernel(); | ||
3956 | } | 3954 | } |
3957 | 3955 | ||
3958 | /* | 3956 | /* |
@@ -3992,7 +3990,7 @@ block_til_ready(struct tty_struct *tty, struct file * filp, | |||
3992 | */ | 3990 | */ |
3993 | if (tty_hung_up_p(filp) || | 3991 | if (tty_hung_up_p(filp) || |
3994 | (info->flags & ASYNC_CLOSING)) { | 3992 | (info->flags & ASYNC_CLOSING)) { |
3995 | wait_event_interruptible(info->close_wait, | 3993 | wait_event_interruptible_tty(info->close_wait, |
3996 | !(info->flags & ASYNC_CLOSING)); | 3994 | !(info->flags & ASYNC_CLOSING)); |
3997 | #ifdef SERIAL_DO_RESTART | 3995 | #ifdef SERIAL_DO_RESTART |
3998 | if (info->flags & ASYNC_HUP_NOTIFY) | 3996 | if (info->flags & ASYNC_HUP_NOTIFY) |
@@ -4068,7 +4066,9 @@ block_til_ready(struct tty_struct *tty, struct file * filp, | |||
4068 | printk("block_til_ready blocking: ttyS%d, count = %d\n", | 4066 | printk("block_til_ready blocking: ttyS%d, count = %d\n", |
4069 | info->line, info->count); | 4067 | info->line, info->count); |
4070 | #endif | 4068 | #endif |
4069 | tty_unlock(); | ||
4071 | schedule(); | 4070 | schedule(); |
4071 | tty_lock(); | ||
4072 | } | 4072 | } |
4073 | set_current_state(TASK_RUNNING); | 4073 | set_current_state(TASK_RUNNING); |
4074 | remove_wait_queue(&info->open_wait, &wait); | 4074 | remove_wait_queue(&info->open_wait, &wait); |
@@ -4150,7 +4150,7 @@ rs_open(struct tty_struct *tty, struct file * filp) | |||
4150 | */ | 4150 | */ |
4151 | if (tty_hung_up_p(filp) || | 4151 | if (tty_hung_up_p(filp) || |
4152 | (info->flags & ASYNC_CLOSING)) { | 4152 | (info->flags & ASYNC_CLOSING)) { |
4153 | wait_event_interruptible(info->close_wait, | 4153 | wait_event_interruptible_tty(info->close_wait, |
4154 | !(info->flags & ASYNC_CLOSING)); | 4154 | !(info->flags & ASYNC_CLOSING)); |
4155 | #ifdef SERIAL_DO_RESTART | 4155 | #ifdef SERIAL_DO_RESTART |
4156 | return ((info->flags & ASYNC_HUP_NOTIFY) ? | 4156 | return ((info->flags & ASYNC_HUP_NOTIFY) ? |
@@ -4533,8 +4533,8 @@ static int __init rs_init(void) | |||
4533 | INIT_WORK(&info->work, do_softint); | 4533 | INIT_WORK(&info->work, do_softint); |
4534 | 4534 | ||
4535 | if (info->enabled) { | 4535 | if (info->enabled) { |
4536 | printk(KERN_INFO "%s%d at 0x%x is a builtin UART with DMA\n", | 4536 | printk(KERN_INFO "%s%d at %p is a builtin UART with DMA\n", |
4537 | serial_driver->name, info->line, (unsigned int)info->ioport); | 4537 | serial_driver->name, info->line, info->ioport); |
4538 | } | 4538 | } |
4539 | } | 4539 | } |
4540 | #ifdef CONFIG_ETRAX_FAST_TIMER | 4540 | #ifdef CONFIG_ETRAX_FAST_TIMER |