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

From: kernel test robot
Date: Tue Aug 25 2020 - 16:45:10 EST


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