[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