initramfs: prevent initramfs printk message being split by messages from other code.
initramfs uses printk without a linefeed, then does some work, then uses printk to finish the message off. However if some other code does a printk in between, then the messages get mixed together. Better for each message to be an independent line... Example of problem that this fixes: checking if image is initramfs...<7>Switched to high resolution mode on CPU 1 Switched to high resolution mode on CPU 0 it is Signed-off-by: Simon Kitching <skitching@apache.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
6f2c55b843
commit
c1c490e017
@@ -571,11 +571,11 @@ static int __init populate_rootfs(void)
|
|||||||
if (initrd_start) {
|
if (initrd_start) {
|
||||||
#ifdef CONFIG_BLK_DEV_RAM
|
#ifdef CONFIG_BLK_DEV_RAM
|
||||||
int fd;
|
int fd;
|
||||||
printk(KERN_INFO "checking if image is initramfs...");
|
printk(KERN_INFO "checking if image is initramfs...\n");
|
||||||
err = unpack_to_rootfs((char *)initrd_start,
|
err = unpack_to_rootfs((char *)initrd_start,
|
||||||
initrd_end - initrd_start);
|
initrd_end - initrd_start);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
printk(" it is\n");
|
printk(KERN_INFO "rootfs image is initramfs; unpacking...\n");
|
||||||
free_initrd();
|
free_initrd();
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
@@ -583,7 +583,8 @@ static int __init populate_rootfs(void)
|
|||||||
unpack_to_rootfs(__initramfs_start,
|
unpack_to_rootfs(__initramfs_start,
|
||||||
__initramfs_end - __initramfs_start);
|
__initramfs_end - __initramfs_start);
|
||||||
}
|
}
|
||||||
printk("it isn't (%s); looks like an initrd\n", err);
|
printk(KERN_INFO "rootfs image is not initramfs (%s)"
|
||||||
|
"; looks like an initrd\n", err);
|
||||||
fd = sys_open("/initrd.image", O_WRONLY|O_CREAT, 0700);
|
fd = sys_open("/initrd.image", O_WRONLY|O_CREAT, 0700);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
sys_write(fd, (char *)initrd_start,
|
sys_write(fd, (char *)initrd_start,
|
||||||
|
Reference in New Issue
Block a user