From 02407baaebdef86571e4e939ddbd3b32d9b5d389 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Thu, 2 Feb 2017 10:33:20 +0100 Subject: s390/sclp: don't add new lines to each printed string The early vt220 sclp printk code added an extra new line to each printed multi-line text. If used for the early sclp console this will lead to numerous extra new lines. Therefore get rid of this semantic and require that each to be printed string contains a line feed character if a new line is wanted. Reviewed-by: Peter Oberparleiter Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- drivers/s390/char/sclp_early_core.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'drivers/s390/char') diff --git a/drivers/s390/char/sclp_early_core.c b/drivers/s390/char/sclp_early_core.c index 97f4c84..cc3ad8c 100644 --- a/drivers/s390/char/sclp_early_core.c +++ b/drivers/s390/char/sclp_early_core.c @@ -138,21 +138,18 @@ struct vt220_sccb { } msg; } __packed; -/* Output multi-line text (plus a newline) using SCLP VT220 - * interface. - */ +/* Output multi-line text using SCLP VT220 interface. */ static void sclp_early_print_vt220(const char *str, unsigned int len) { struct vt220_sccb *sccb; sccb = (struct vt220_sccb *) &sclp_early_sccb; if (sizeof(*sccb) + len >= sizeof(sclp_early_sccb)) - len = sizeof(sclp_early_sccb) - sizeof(*sccb) - 1; + len = sizeof(sclp_early_sccb) - sizeof(*sccb); memset(sccb, 0, sizeof(*sccb)); memcpy(&sccb->msg.data, str, len); - sccb->msg.data[len] = '\n'; - sccb->header.length = sizeof(*sccb) + len + 1; - sccb->msg.header.length = sizeof(sccb->msg) + len + 1; + sccb->header.length = sizeof(*sccb) + len; + sccb->msg.header.length = sizeof(sccb->msg) + len; sccb->msg.header.type = EVTYP_VT220MSG; sclp_early_cmd(SCLP_CMDW_WRITE_EVENT_DATA, sccb); } @@ -196,8 +193,9 @@ static int sclp_early_setup(int disable, int *have_linemode, int *have_vt220) return rc; } -/* Output one or more lines of text on the SCLP console (VT220 and / - * or line-mode). All lines get terminated; no need for a trailing LF. +/* + * Output one or more lines of text on the SCLP console (VT220 and / + * or line-mode). */ void __sclp_early_printk(const char *str, unsigned int len) { -- cgit v1.1