Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390/3270: redraw screen on unsolicited device end

If a 3270 terminal is disconnected and later reconnected again,
it gets an unsolicited device end. This is currently ignored and
you have to hit the clear key to get the screen redrawn.
Add an automatic full redraw of the screen for this case.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

+8
+4
drivers/s390/char/con3270.c
··· 413 413 else 414 414 /* Normal end. Copy residual count. */ 415 415 rq->rescnt = irb->scsw.cmd.count; 416 + } else if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { 417 + /* Interrupt without an outstanding request -> update all */ 418 + cp->update_flags = CON_UPDATE_ALL; 419 + con3270_set_timer(cp, 1); 416 420 } 417 421 return RAW3270_IO_DONE; 418 422 }
+4
drivers/s390/char/tty3270.c
··· 659 659 else 660 660 /* Normal end. Copy residual count. */ 661 661 rq->rescnt = irb->scsw.cmd.count; 662 + } else if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { 663 + /* Interrupt without an outstanding request -> update all */ 664 + tp->update_flags = TTY_UPDATE_ALL; 665 + tty3270_set_timer(tp, 1); 662 666 } 663 667 return RAW3270_IO_DONE; 664 668 }