diff options
Diffstat (limited to 'drivers/s390/char')
-rw-r--r-- | drivers/s390/char/sclp_vt220.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index 9854f19f5e62..a839aa531d7c 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
@@ -583,23 +583,6 @@ sclp_vt220_chars_in_buffer(struct tty_struct *tty) | |||
583 | return count; | 583 | return count; |
584 | } | 584 | } |
585 | 585 | ||
586 | static void | ||
587 | __sclp_vt220_flush_buffer(void) | ||
588 | { | ||
589 | unsigned long flags; | ||
590 | |||
591 | sclp_vt220_emit_current(); | ||
592 | spin_lock_irqsave(&sclp_vt220_lock, flags); | ||
593 | if (timer_pending(&sclp_vt220_timer)) | ||
594 | del_timer(&sclp_vt220_timer); | ||
595 | while (sclp_vt220_outqueue_count > 0) { | ||
596 | spin_unlock_irqrestore(&sclp_vt220_lock, flags); | ||
597 | sclp_sync_wait(); | ||
598 | spin_lock_irqsave(&sclp_vt220_lock, flags); | ||
599 | } | ||
600 | spin_unlock_irqrestore(&sclp_vt220_lock, flags); | ||
601 | } | ||
602 | |||
603 | /* | 586 | /* |
604 | * Pass on all buffers to the hardware. Return only when there are no more | 587 | * Pass on all buffers to the hardware. Return only when there are no more |
605 | * buffers pending. | 588 | * buffers pending. |
@@ -745,6 +728,22 @@ sclp_vt220_con_device(struct console *c, int *index) | |||
745 | return sclp_vt220_driver; | 728 | return sclp_vt220_driver; |
746 | } | 729 | } |
747 | 730 | ||
731 | static void __sclp_vt220_flush_buffer(void) | ||
732 | { | ||
733 | unsigned long flags; | ||
734 | |||
735 | sclp_vt220_emit_current(); | ||
736 | spin_lock_irqsave(&sclp_vt220_lock, flags); | ||
737 | if (timer_pending(&sclp_vt220_timer)) | ||
738 | del_timer(&sclp_vt220_timer); | ||
739 | while (sclp_vt220_outqueue_count > 0) { | ||
740 | spin_unlock_irqrestore(&sclp_vt220_lock, flags); | ||
741 | sclp_sync_wait(); | ||
742 | spin_lock_irqsave(&sclp_vt220_lock, flags); | ||
743 | } | ||
744 | spin_unlock_irqrestore(&sclp_vt220_lock, flags); | ||
745 | } | ||
746 | |||
748 | static int | 747 | static int |
749 | sclp_vt220_notify(struct notifier_block *self, | 748 | sclp_vt220_notify(struct notifier_block *self, |
750 | unsigned long event, void *data) | 749 | unsigned long event, void *data) |