[PATCH 2/2] arm64: Reserve memory for quick kexec

kernel test robot lkp at intel.com
Sun Aug 16 00:11:56 EDT 2020


Hi Sang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on linux/master linus/master v5.8 next-20200814]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Sang-Yan/kexec-Add-quick-kexec-support-for-kernel/20200814-142840
base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: arm64-randconfig-r011-20200816 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   arch/arm64/kernel/setup.c: In function 'setup_arch':
>> arch/arm64/kernel/setup.c:374:32: error: 'res' undeclared (first use in this function)
     374 |       quick_kexec_res.start >= res->start &&
         |                                ^~~
   arch/arm64/kernel/setup.c:374:32: note: each undeclared identifier is reported only once for each function it appears in
--
   arch/arm64/mm/init.c: In function 'reserve_quick_kexec':
>> arch/arm64/mm/init.c:155:13: error: 'CRASH_ALIGN' undeclared (first use in this function); did you mean 'CMSG_ALIGN'?
     155 |    mem_len, CRASH_ALIGN);
         |             ^~~~~~~~~~~
         |             CMSG_ALIGN
   arch/arm64/mm/init.c:155:13: note: each undeclared identifier is reported only once for each function it appears in

vim +/res +374 arch/arm64/kernel/setup.c

   284	
   285	void __init setup_arch(char **cmdline_p)
   286	{
   287		init_mm.start_code = (unsigned long) _text;
   288		init_mm.end_code   = (unsigned long) _etext;
   289		init_mm.end_data   = (unsigned long) _edata;
   290		init_mm.brk	   = (unsigned long) _end;
   291	
   292		*cmdline_p = boot_command_line;
   293	
   294		/*
   295		 * If know now we are going to need KPTI then use non-global
   296		 * mappings from the start, avoiding the cost of rewriting
   297		 * everything later.
   298		 */
   299		arm64_use_ng_mappings = kaslr_requires_kpti();
   300	
   301		early_fixmap_init();
   302		early_ioremap_init();
   303	
   304		setup_machine_fdt(__fdt_pointer);
   305	
   306		/*
   307		 * Initialise the static keys early as they may be enabled by the
   308		 * cpufeature code and early parameters.
   309		 */
   310		jump_label_init();
   311		parse_early_param();
   312	
   313		/*
   314		 * Unmask asynchronous aborts and fiq after bringing up possible
   315		 * earlycon. (Report possible System Errors once we can report this
   316		 * occurred).
   317		 */
   318		local_daif_restore(DAIF_PROCCTX_NOIRQ);
   319	
   320		/*
   321		 * TTBR0 is only used for the identity mapping at this stage. Make it
   322		 * point to zero page to avoid speculatively fetching new entries.
   323		 */
   324		cpu_uninstall_idmap();
   325	
   326		xen_early_init();
   327		efi_init();
   328	
   329		if (!efi_enabled(EFI_BOOT) && ((u64)_text % MIN_KIMG_ALIGN) != 0)
   330		     pr_warn(FW_BUG "Kernel image misaligned at boot, please fix your bootloader!");
   331	
   332		arm64_memblock_init();
   333	
   334		paging_init();
   335	
   336		acpi_table_upgrade();
   337	
   338		/* Parse the ACPI tables for possible boot-time configuration */
   339		acpi_boot_table_init();
   340	
   341		if (acpi_disabled)
   342			unflatten_device_tree();
   343	
   344		bootmem_init();
   345	
   346		kasan_init();
   347	
   348		request_standard_resources();
   349	
   350		early_ioremap_reset();
   351	
   352		if (acpi_disabled)
   353			psci_dt_init();
   354		else
   355			psci_acpi_init();
   356	
   357		init_bootcpu_ops();
   358		smp_init_cpus();
   359		smp_build_mpidr_hash();
   360	
   361		/* Init percpu seeds for random tags after cpus are set up. */
   362		kasan_init_tags();
   363	
   364	#ifdef CONFIG_ARM64_SW_TTBR0_PAN
   365		/*
   366		 * Make sure init_thread_info.ttbr0 always generates translation
   367		 * faults in case uaccess_enable() is inadvertently called by the init
   368		 * thread.
   369		 */
   370		init_task.thread_info.ttbr0 = __pa_symbol(empty_zero_page);
   371	#endif
   372	#ifdef CONFIG_QUICK_KEXEC
   373			if (quick_kexec_res.end &&
 > 374			    quick_kexec_res.start >= res->start &&
   375			    quick_kexec_res.end <= res->end)
   376				request_resource(res, &quick_kexec_res);
   377	#endif
   378	
   379		if (boot_args[1] || boot_args[2] || boot_args[3]) {
   380			pr_err("WARNING: x1-x3 nonzero in violation of boot protocol:\n"
   381				"\tx1: %016llx\n\tx2: %016llx\n\tx3: %016llx\n"
   382				"This indicates a broken bootloader or old kernel\n",
   383				boot_args[1], boot_args[2], boot_args[3]);
   384		}
   385	}
   386	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 33210 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/kexec/attachments/20200816/a524aedf/attachment-0001.gz>


More information about the kexec mailing list