diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-01-11 13:51:22 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-11 14:49:52 +1100 |
commit | 415c2e083a85f0daf6cbb4988691ac3ea9279509 (patch) | |
tree | a5b81eb3626ac8ae2bd0834b617e5cc4e26f63cf /drivers/char/viocons.c | |
parent | 7a0268fa1a3613f2c526a9b3058701b277f6abe1 (diff) |
[PATCH] powerpc: fix up iSeries console after TTY layer buffering revamp
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers/char/viocons.c')
-rw-r--r-- | drivers/char/viocons.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/char/viocons.c b/drivers/char/viocons.c index bead38a4a68a..faee5e7acaf7 100644 --- a/drivers/char/viocons.c +++ b/drivers/char/viocons.c @@ -904,6 +904,7 @@ static void vioHandleData(struct HvLpEvent *event) struct viocharlpevent *cevent = (struct viocharlpevent *)event; struct port_info *pi; int index; + int num_pushed; u8 port = cevent->virtual_device; if (port >= VTTY_PORTS) { @@ -964,6 +965,7 @@ static void vioHandleData(struct HvLpEvent *event) * functionality will only work if built into the kernel and * then only if sysrq is enabled through the proc filesystem. */ + num_pushed = 0; for (index = 0; index < cevent->len; index++) { #ifdef CONFIG_MAGIC_SYSRQ if (sysrq_enabled) { @@ -997,11 +999,10 @@ static void vioHandleData(struct HvLpEvent *event) printk(VIOCONS_KERN_WARN "input buffer overflow!\n"); break; } + num_pushed++; } - /* if cevent->len == 0 then no data was added to the buffer and flip.count == 0 */ - if (tty->flip.count) - /* The next call resets flip.count when the data is flushed. */ + if (num_pushed) tty_flip_buffer_push(tty); } |