summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2017-02-02 10:33:20 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2017-02-08 14:13:20 +0100
commit02407baaebdef86571e4e939ddbd3b32d9b5d389 (patch)
tree3389599af369faa22c2731947bde7714cad1ba66
parentd5ab7a34f9bbad54f89b812e6b0d2d898f9433db (diff)
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 <oberpar@linux.vnet.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/kernel/als.c7
-rw-r--r--arch/s390/kernel/swsusp.S2
-rw-r--r--drivers/s390/char/sclp_early_core.c16
3 files changed, 13 insertions, 12 deletions
diff --git a/arch/s390/kernel/als.c b/arch/s390/kernel/als.c
index 0b3a06f05f90..14769eb52a33 100644
--- a/arch/s390/kernel/als.c
+++ b/arch/s390/kernel/als.c
@@ -41,6 +41,7 @@ static void __init print_machine_type(void)
get_cpu_id(&id);
u16_to_hex(type_str, id.machine);
strcat(mach_str, type_str);
+ strcat(mach_str, "\n");
sclp_early_printk(mach_str);
}
@@ -79,6 +80,7 @@ static void __init print_missing_facilities(void)
* z/VM adds a four character prefix.
*/
if (strlen(als_str) > 70) {
+ strcat(als_str, "\n");
sclp_early_printk(als_str);
*als_str = '\0';
}
@@ -87,13 +89,14 @@ static void __init print_missing_facilities(void)
first = 0;
}
}
+ strcat(als_str, "\n");
sclp_early_printk(als_str);
- sclp_early_printk("See Principles of Operations for facility bits");
+ sclp_early_printk("See Principles of Operations for facility bits\n");
}
static void __init facility_mismatch(void)
{
- sclp_early_printk("The Linux kernel requires more recent processor hardware");
+ sclp_early_printk("The Linux kernel requires more recent processor hardware\n");
print_machine_type();
print_missing_facilities();
disabled_wait(0x8badcccc);
diff --git a/arch/s390/kernel/swsusp.S b/arch/s390/kernel/swsusp.S
index 6c56fb89f553..6bebc935e9c2 100644
--- a/arch/s390/kernel/swsusp.S
+++ b/arch/s390/kernel/swsusp.S
@@ -273,7 +273,7 @@ restore_registers:
.Ldisabled_wait_31:
.long 0x000a0000,0x00000000
.Lpanic_string:
- .asciz "Resume not possible because suspend CPU is no longer available"
+ .asciz "Resume not possible because suspend CPU is no longer available\n"
.align 8
.Lrestart_diag308_psw:
.long 0x00080000,0x80000000
diff --git a/drivers/s390/char/sclp_early_core.c b/drivers/s390/char/sclp_early_core.c
index 97f4c84d6635..cc3ad8c69a7a 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)
{