diff options
Diffstat (limited to 'drivers/serial/68360serial.c')
-rw-r--r-- | drivers/serial/68360serial.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/serial/68360serial.c b/drivers/serial/68360serial.c index 24661cd5e4fb..0dff3bbddc8b 100644 --- a/drivers/serial/68360serial.c +++ b/drivers/serial/68360serial.c | |||
@@ -1705,7 +1705,6 @@ static void rs_360_wait_until_sent(struct tty_struct *tty, int timeout) | |||
1705 | printk("jiff=%lu...", jiffies); | 1705 | printk("jiff=%lu...", jiffies); |
1706 | #endif | 1706 | #endif |
1707 | 1707 | ||
1708 | lock_kernel(); | ||
1709 | /* We go through the loop at least once because we can't tell | 1708 | /* We go through the loop at least once because we can't tell |
1710 | * exactly when the last character exits the shifter. There can | 1709 | * exactly when the last character exits the shifter. There can |
1711 | * be at least two characters waiting to be sent after the buffers | 1710 | * be at least two characters waiting to be sent after the buffers |
@@ -1734,7 +1733,6 @@ static void rs_360_wait_until_sent(struct tty_struct *tty, int timeout) | |||
1734 | bdp--; | 1733 | bdp--; |
1735 | } while (bdp->status & BD_SC_READY); | 1734 | } while (bdp->status & BD_SC_READY); |
1736 | current->state = TASK_RUNNING; | 1735 | current->state = TASK_RUNNING; |
1737 | unlock_kernel(); | ||
1738 | #ifdef SERIAL_DEBUG_RS_WAIT_UNTIL_SENT | 1736 | #ifdef SERIAL_DEBUG_RS_WAIT_UNTIL_SENT |
1739 | printk("lsr = %d (jiff=%lu)...done\n", lsr, jiffies); | 1737 | printk("lsr = %d (jiff=%lu)...done\n", lsr, jiffies); |
1740 | #endif | 1738 | #endif |
@@ -1862,7 +1860,9 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp, | |||
1862 | printk("block_til_ready blocking: ttys%d, count = %d\n", | 1860 | printk("block_til_ready blocking: ttys%d, count = %d\n", |
1863 | info->line, state->count); | 1861 | info->line, state->count); |
1864 | #endif | 1862 | #endif |
1863 | tty_unlock(); | ||
1865 | schedule(); | 1864 | schedule(); |
1865 | tty_lock(); | ||
1866 | } | 1866 | } |
1867 | current->state = TASK_RUNNING; | 1867 | current->state = TASK_RUNNING; |
1868 | remove_wait_queue(&info->open_wait, &wait); | 1868 | remove_wait_queue(&info->open_wait, &wait); |
@@ -2649,7 +2649,7 @@ static int __init rs_360_init(void) | |||
2649 | sup->tfcr = SMC_EB; | 2649 | sup->tfcr = SMC_EB; |
2650 | 2650 | ||
2651 | /* Set this to 1 for now, so we get single | 2651 | /* Set this to 1 for now, so we get single |
2652 | * character interrupts. Using idle charater | 2652 | * character interrupts. Using idle character |
2653 | * time requires some additional tuning. | 2653 | * time requires some additional tuning. |
2654 | */ | 2654 | */ |
2655 | sup->mrblr = 1; | 2655 | sup->mrblr = 1; |
@@ -2728,7 +2728,7 @@ static int __init rs_360_init(void) | |||
2728 | up->tfcr = SMC_EB; | 2728 | up->tfcr = SMC_EB; |
2729 | 2729 | ||
2730 | /* Set this to 1 for now, so we get single | 2730 | /* Set this to 1 for now, so we get single |
2731 | * character interrupts. Using idle charater | 2731 | * character interrupts. Using idle character |
2732 | * time requires some additional tuning. | 2732 | * time requires some additional tuning. |
2733 | */ | 2733 | */ |
2734 | up->mrblr = 1; | 2734 | up->mrblr = 1; |
@@ -2886,7 +2886,7 @@ int serial_console_setup( struct console *co, char *options) | |||
2886 | sup->tfcr = SMC_EB; | 2886 | sup->tfcr = SMC_EB; |
2887 | 2887 | ||
2888 | /* Set this to 1 for now, so we get single | 2888 | /* Set this to 1 for now, so we get single |
2889 | * character interrupts. Using idle charater | 2889 | * character interrupts. Using idle character |
2890 | * time requires some additional tuning. | 2890 | * time requires some additional tuning. |
2891 | */ | 2891 | */ |
2892 | sup->mrblr = 1; | 2892 | sup->mrblr = 1; |