diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 9 | ||||
-rw-r--r-- | init/initramfs.c | 10 | ||||
-rw-r--r-- | init/main.c | 24 |
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 | ||
473 | config 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 | |||
482 | config MODVERSIONS | 473 | config 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 | ||
309 | extern 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 | ||