aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig9
-rw-r--r--init/initramfs.c10
-rw-r--r--init/main.c24
3 files changed, 25 insertions, 18 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 1d19fd25204b..05951c1d654e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -470,15 +470,6 @@ config MODULE_FORCE_UNLOAD
470 rmmod). This is mainly for kernel developers and desperate users. 470 rmmod). This is mainly for kernel developers and desperate users.
471 If unsure, say N. 471 If unsure, say N.
472 472
473config OBSOLETE_MODPARM
474 bool
475 default y
476 depends on MODULES
477 help
478 You need this option to use module parameters on modules which
479 have not been converted to the new module parameter system yet.
480 If unsure, say Y.
481
482config MODVERSIONS 473config MODVERSIONS
483 bool "Module versioning support" 474 bool "Module versioning support"
484 depends on MODULES 475 depends on MODULES
diff --git a/init/initramfs.c b/init/initramfs.c
index 637344b05981..77b934cccefe 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -506,6 +506,7 @@ void __init populate_rootfs(void)
506 panic(err); 506 panic(err);
507#ifdef CONFIG_BLK_DEV_INITRD 507#ifdef CONFIG_BLK_DEV_INITRD
508 if (initrd_start) { 508 if (initrd_start) {
509#ifdef CONFIG_BLK_DEV_RAM
509 int fd; 510 int fd;
510 printk(KERN_INFO "checking if image is initramfs..."); 511 printk(KERN_INFO "checking if image is initramfs...");
511 err = unpack_to_rootfs((char *)initrd_start, 512 err = unpack_to_rootfs((char *)initrd_start,
@@ -525,6 +526,15 @@ void __init populate_rootfs(void)
525 sys_close(fd); 526 sys_close(fd);
526 free_initrd(); 527 free_initrd();
527 } 528 }
529#else
530 printk(KERN_INFO "Unpacking initramfs...");
531 err = unpack_to_rootfs((char *)initrd_start,
532 initrd_end - initrd_start, 0);
533 if (err)
534 panic(err);
535 printk(" done\n");
536 free_initrd();
537#endif
528 } 538 }
529#endif 539#endif
530} 540}
diff --git a/init/main.c b/init/main.c
index 2714e0e7cfec..006dcd547dc2 100644
--- a/init/main.c
+++ b/init/main.c
@@ -306,8 +306,6 @@ static int __init rdinit_setup(char *str)
306} 306}
307__setup("rdinit=", rdinit_setup); 307__setup("rdinit=", rdinit_setup);
308 308
309extern void setup_arch(char **);
310
311#ifndef CONFIG_SMP 309#ifndef CONFIG_SMP
312 310
313#ifdef CONFIG_X86_LOCAL_APIC 311#ifdef CONFIG_X86_LOCAL_APIC
@@ -571,17 +569,23 @@ static void __init do_initcalls(void)
571 int count = preempt_count(); 569 int count = preempt_count();
572 570
573 for (call = __initcall_start; call < __initcall_end; call++) { 571 for (call = __initcall_start; call < __initcall_end; call++) {
574 char *msg; 572 char *msg = NULL;
573 char msgbuf[40];
574 int result;
575 575
576 if (initcall_debug) { 576 if (initcall_debug) {
577 printk(KERN_DEBUG "Calling initcall 0x%p", *call); 577 printk("Calling initcall 0x%p", *call);
578 print_fn_descriptor_symbol(": %s()", (unsigned long) *call); 578 print_fn_descriptor_symbol(": %s()",
579 (unsigned long) *call);
579 printk("\n"); 580 printk("\n");
580 } 581 }
581 582
582 (*call)(); 583 result = (*call)();
583 584
584 msg = NULL; 585 if (result && (result != -ENODEV || initcall_debug)) {
586 sprintf(msgbuf, "error code %d", result);
587 msg = msgbuf;
588 }
585 if (preempt_count() != count) { 589 if (preempt_count() != count) {
586 msg = "preemption imbalance"; 590 msg = "preemption imbalance";
587 preempt_count() = count; 591 preempt_count() = count;
@@ -591,8 +595,10 @@ static void __init do_initcalls(void)
591 local_irq_enable(); 595 local_irq_enable();
592 } 596 }
593 if (msg) { 597 if (msg) {
594 printk(KERN_WARNING "error in initcall at 0x%p: " 598 printk(KERN_WARNING "initcall at 0x%p", *call);
595 "returned with %s\n", *call, msg); 599 print_fn_descriptor_symbol(": %s()",
600 (unsigned long) *call);
601 printk(": returned with %s\n", msg);
596 } 602 }
597 } 603 }
598 604