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);
}
* z/VM adds a four character prefix.
*/
if (strlen(als_str) > 70) {
+ strcat(als_str, "\n");
sclp_early_printk(als_str);
*als_str = '\0';
}
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);
.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
} 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);
}
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)
{