Re: [PATCH 1/2] cper, apei, mce: Pass x86 CPER through the MCA handling chain

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Smita,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/auto-latest efi/next v5.9-rc2 next-20200825]
[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/Smita-Koralahalli/Decode-raw-MSR-values-of-MCA-registers-in-BERT/20200825-224828
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git ef2ff0f5d6008d325c9a068e20981c0d0acc4d6b
config: x86_64-randconfig-r024-20200826 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   ld: drivers/firmware/efi/cper-x86.o: in function `cper_print_proc_ia':
>> drivers/firmware/efi/cper-x86.c:350: undefined reference to `arch_apei_report_x86_error'

# https://github.com/0day-ci/linux/commit/40a67e64577bd2fee8aa3218efdbec2122cbe08d
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Smita-Koralahalli/Decode-raw-MSR-values-of-MCA-registers-in-BERT/20200825-224828
git checkout 40a67e64577bd2fee8aa3218efdbec2122cbe08d
vim +350 drivers/firmware/efi/cper-x86.c

   255	
   256	void cper_print_proc_ia(const char *pfx, const struct cper_sec_proc_ia *proc)
   257	{
   258		int i;
   259		struct cper_ia_err_info *err_info;
   260		struct cper_ia_proc_ctx *ctx_info;
   261		char newpfx[64], infopfx[64];
   262		u8 err_type;
   263	
   264		if (proc->validation_bits & VALID_LAPIC_ID)
   265			printk("%sLocal APIC_ID: 0x%llx\n", pfx, proc->lapic_id);
   266	
   267		if (proc->validation_bits & VALID_CPUID_INFO) {
   268			printk("%sCPUID Info:\n", pfx);
   269			print_hex_dump(pfx, "", DUMP_PREFIX_OFFSET, 16, 4, proc->cpuid,
   270				       sizeof(proc->cpuid), 0);
   271		}
   272	
   273		snprintf(newpfx, sizeof(newpfx), "%s ", pfx);
   274	
   275		err_info = (struct cper_ia_err_info *)(proc + 1);
   276		for (i = 0; i < VALID_PROC_ERR_INFO_NUM(proc->validation_bits); i++) {
   277			printk("%sError Information Structure %d:\n", pfx, i);
   278	
   279			err_type = cper_get_err_type(&err_info->err_type);
   280			printk("%sError Structure Type: %s\n", newpfx,
   281			       err_type < ARRAY_SIZE(cper_proc_error_type_strs) ?
   282			       cper_proc_error_type_strs[err_type] : "unknown");
   283	
   284			if (err_type >= N_ERR_TYPES) {
   285				printk("%sError Structure Type: %pUl\n", newpfx,
   286				       &err_info->err_type);
   287			}
   288	
   289			if (err_info->validation_bits & INFO_VALID_CHECK_INFO) {
   290				printk("%sCheck Information: 0x%016llx\n", newpfx,
   291				       err_info->check_info);
   292	
   293				if (err_type < N_ERR_TYPES) {
   294					snprintf(infopfx, sizeof(infopfx), "%s ",
   295						 newpfx);
   296	
   297					print_err_info(infopfx, err_type,
   298						       err_info->check_info);
   299				}
   300			}
   301	
   302			if (err_info->validation_bits & INFO_VALID_TARGET_ID) {
   303				printk("%sTarget Identifier: 0x%016llx\n",
   304				       newpfx, err_info->target_id);
   305			}
   306	
   307			if (err_info->validation_bits & INFO_VALID_REQUESTOR_ID) {
   308				printk("%sRequestor Identifier: 0x%016llx\n",
   309				       newpfx, err_info->requestor_id);
   310			}
   311	
   312			if (err_info->validation_bits & INFO_VALID_RESPONDER_ID) {
   313				printk("%sResponder Identifier: 0x%016llx\n",
   314				       newpfx, err_info->responder_id);
   315			}
   316	
   317			if (err_info->validation_bits & INFO_VALID_IP) {
   318				printk("%sInstruction Pointer: 0x%016llx\n",
   319				       newpfx, err_info->ip);
   320			}
   321	
   322			err_info++;
   323		}
   324	
   325		ctx_info = (struct cper_ia_proc_ctx *)err_info;
   326		for (i = 0; i < VALID_PROC_CXT_INFO_NUM(proc->validation_bits); i++) {
   327			int size = sizeof(*ctx_info) + ctx_info->reg_arr_size;
   328			int groupsize = 4;
   329	
   330			printk("%sContext Information Structure %d:\n", pfx, i);
   331	
   332			printk("%sRegister Context Type: %s\n", newpfx,
   333			       ctx_info->reg_ctx_type < ARRAY_SIZE(ia_reg_ctx_strs) ?
   334			       ia_reg_ctx_strs[ctx_info->reg_ctx_type] : "unknown");
   335	
   336			printk("%sRegister Array Size: 0x%04x\n", newpfx,
   337			       ctx_info->reg_arr_size);
   338	
   339			if (ctx_info->reg_ctx_type == CTX_TYPE_MSR) {
   340				groupsize = 8; /* MSRs are 8 bytes wide. */
   341				printk("%sMSR Address: 0x%08x\n", newpfx,
   342				       ctx_info->msr_addr);
   343			}
   344	
   345			if (ctx_info->reg_ctx_type == CTX_TYPE_MMREG) {
   346				printk("%sMM Register Address: 0x%016llx\n", newpfx,
   347				       ctx_info->mm_reg_addr);
   348			}
   349	
 > 350			if (arch_apei_report_x86_error(proc, ctx_info)) {

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux