[security:next-lockdown 1/29] init/main.c:572:2: error: implicit declaration of function 'early_security_init'; did you mean 'security_init'?
kbuild test robot
lkp at intel.com
Sat Aug 10 06:40:19 UTC 2019
tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/jmorris/linux-security.git next-lockdown
head: 05ef41e93e1a40d6b2d9846284824ec6f67fe422
commit: 45d29f9e9b8b9533e0ba1b3051d9d39ba29abad6 [1/29] security: Support early LSMs
config: i386-alldefconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
git checkout 45d29f9e9b8b9533e0ba1b3051d9d39ba29abad6
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
init/main.c: In function 'start_kernel':
>> init/main.c:572:2: error: implicit declaration of function 'early_security_init'; did you mean 'security_init'? [-Werror=implicit-function-declaration]
early_security_init();
^~~~~~~~~~~~~~~~~~~
security_init
cc1: some warnings being treated as errors
vim +572 init/main.c
550
551 asmlinkage __visible void __init start_kernel(void)
552 {
553 char *command_line;
554 char *after_dashes;
555
556 set_task_stack_end_magic(&init_task);
557 smp_setup_processor_id();
558 debug_objects_early_init();
559
560 cgroup_init_early();
561
562 local_irq_disable();
563 early_boot_irqs_disabled = true;
564
565 /*
566 * Interrupts are still disabled. Do necessary setups, then
567 * enable them.
568 */
569 boot_cpu_init();
570 page_address_init();
571 pr_notice("%s", linux_banner);
> 572 early_security_init();
573 setup_arch(&command_line);
574 mm_init_cpumask(&init_mm);
575 setup_command_line(command_line);
576 setup_nr_cpu_ids();
577 setup_per_cpu_areas();
578 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
579 boot_cpu_hotplug_init();
580
581 build_all_zonelists(NULL);
582 page_alloc_init();
583
584 pr_notice("Kernel command line: %s\n", boot_command_line);
585 /* parameters may set static keys */
586 jump_label_init();
587 parse_early_param();
588 after_dashes = parse_args("Booting kernel",
589 static_command_line, __start___param,
590 __stop___param - __start___param,
591 -1, -1, NULL, &unknown_bootoption);
592 if (!IS_ERR_OR_NULL(after_dashes))
593 parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
594 NULL, set_init_arg);
595
596 /*
597 * These use large bootmem allocations and must precede
598 * kmem_cache_init()
599 */
600 setup_log_buf(0);
601 vfs_caches_init_early();
602 sort_main_extable();
603 trap_init();
604 mm_init();
605
606 ftrace_init();
607
608 /* trace_printk can be enabled here */
609 early_trace_init();
610
611 /*
612 * Set up the scheduler prior starting any interrupts (such as the
613 * timer interrupt). Full topology setup happens at smp_init()
614 * time - but meanwhile we still have a functioning scheduler.
615 */
616 sched_init();
617 /*
618 * Disable preemption - early bootup scheduling is extremely
619 * fragile until we cpu_idle() for the first time.
620 */
621 preempt_disable();
622 if (WARN(!irqs_disabled(),
623 "Interrupts were enabled *very* early, fixing it\n"))
624 local_irq_disable();
625 radix_tree_init();
626
627 /*
628 * Set up housekeeping before setting up workqueues to allow the unbound
629 * workqueue to take non-housekeeping into account.
630 */
631 housekeeping_init();
632
633 /*
634 * Allow workqueue creation and work item queueing/cancelling
635 * early. Work item execution depends on kthreads and starts after
636 * workqueue_init().
637 */
638 workqueue_init_early();
639
640 rcu_init();
641
642 /* Trace events are available after this */
643 trace_init();
644
645 if (initcall_debug)
646 initcall_debug_enable();
647
648 context_tracking_init();
649 /* init some links before init_ISA_irqs() */
650 early_irq_init();
651 init_IRQ();
652 tick_init();
653 rcu_init_nohz();
654 init_timers();
655 hrtimers_init();
656 softirq_init();
657 timekeeping_init();
658
659 /*
660 * For best initial stack canary entropy, prepare it after:
661 * - setup_arch() for any UEFI RNG entropy and boot cmdline access
662 * - timekeeping_init() for ktime entropy used in rand_initialize()
663 * - rand_initialize() to get any arch-specific entropy like RDRAND
664 * - add_latent_entropy() to get any latent entropy
665 * - adding command line entropy
666 */
667 rand_initialize();
668 add_latent_entropy();
669 add_device_randomness(command_line, strlen(command_line));
670 boot_init_stack_canary();
671
672 time_init();
673 printk_safe_init();
674 perf_event_init();
675 profile_init();
676 call_function_init();
677 WARN(!irqs_disabled(), "Interrupts were enabled early\n");
678
679 early_boot_irqs_disabled = false;
680 local_irq_enable();
681
682 kmem_cache_init_late();
683
684 /*
685 * HACK ALERT! This is early. We're enabling the console before
686 * we've done PCI setups etc, and console_init() must be aware of
687 * this. But we do want output early, in case something goes wrong.
688 */
689 console_init();
690 if (panic_later)
691 panic("Too many boot %s vars at `%s'", panic_later,
692 panic_param);
693
694 lockdep_init();
695
696 /*
697 * Need to run this when irqs are enabled, because it wants
698 * to self-test [hard/soft]-irqs on/off lock inversion bugs
699 * too:
700 */
701 locking_selftest();
702
703 /*
704 * This needs to be called before any devices perform DMA
705 * operations that might use the SWIOTLB bounce buffers. It will
706 * mark the bounce buffers as decrypted so that their usage will
707 * not cause "plain-text" data to be decrypted when accessed.
708 */
709 mem_encrypt_init();
710
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
More information about the Linux-security-module-archive
mailing list