s390/3270: fix garbled output on 3270 tty view
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 28 Apr 2016 14:32:13 +0000 (16:32 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 4 May 2016 14:29:52 +0000 (16:29 +0200)
The tty3270_update function tries to optimize the output stream by
skipping the TO_SBA command to position the output offset if the
TO_RA command of the previous line ended at the same offset.
But some lines do not have the TO_RA at the end, namely those
with a length equal to the number of columns.

Make sure there is a TO_RA at the end of the previous line to avoid
funny looking output.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/tty3270.c

index e8afa07f082e3fe95e0300e48b91f4d2277dd551..54ea5a01e30d65de3f332d64b62a1477edcb6131 100644 (file)
@@ -405,7 +405,10 @@ tty3270_update(struct tty3270 *tp)
                        if (raw3270_request_add_data(wrq, str, len) != 0)
                                break;
                        list_del_init(&s->update);
-                       sba = s->string + s->len - 3;
+                       if (s->string[s->len - 4] == TO_RA)
+                               sba = s->string + s->len - 3;
+                       else
+                               sba = invalid_sba;
                }
                if (list_empty(&tp->update))
                        updated |= TTY_UPDATE_LIST;