[PATCH v2 13/14] powerpc/64s: system reset do not trace
kbuild test robot
lkp at intel.com
Sun Apr 5 07:40:41 AEST 2020
Hi Nicholas,
I love your patch! Yet something to improve:
[auto build test ERROR on powerpc/next]
[also build test ERROR on next-20200404]
[cannot apply to v5.6]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-64-machine-check-and-system-reset-fixes/20200405-030723
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allnoconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
reproduce:
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
GCC_VERSION=9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
arch/powerpc/kernel/traps.c: In function 'system_reset_exception':
>> arch/powerpc/kernel/traps.c:446:22: error: 'local_paca' undeclared (first use in this function); did you mean 'local_dec'?
446 | u8 ftrace_enabled = local_paca->ftrace_enabled;
| ^~~~~~~~~~
| local_dec
arch/powerpc/kernel/traps.c:446:22: note: each undeclared identifier is reported only once for each function it appears in
vim +446 arch/powerpc/kernel/traps.c
440
441 void system_reset_exception(struct pt_regs *regs)
442 {
443 unsigned long hsrr0, hsrr1;
444 bool nested = in_nmi();
445 bool saved_hsrrs = false;
> 446 u8 ftrace_enabled = local_paca->ftrace_enabled;
447
448 local_paca->ftrace_enabled = 0;
449
450 /*
451 * Avoid crashes in case of nested NMI exceptions. Recoverability
452 * is determined by RI and in_nmi
453 */
454 if (!nested)
455 nmi_enter();
456
457 /*
458 * System reset can interrupt code where HSRRs are live and MSR[RI]=1.
459 * The system reset interrupt itself may clobber HSRRs (e.g., to call
460 * OPAL), so save them here and restore them before returning.
461 *
462 * Machine checks don't need to save HSRRs, as the real mode handler
463 * is careful to avoid them, and the regular handler is not delivered
464 * as an NMI.
465 */
466 if (cpu_has_feature(CPU_FTR_HVMODE)) {
467 hsrr0 = mfspr(SPRN_HSRR0);
468 hsrr1 = mfspr(SPRN_HSRR1);
469 saved_hsrrs = true;
470 }
471
472 hv_nmi_check_nonrecoverable(regs);
473
474 __this_cpu_inc(irq_stat.sreset_irqs);
475
476 /* See if any machine dependent calls */
477 if (ppc_md.system_reset_exception) {
478 if (ppc_md.system_reset_exception(regs))
479 goto out;
480 }
481
482 if (debugger(regs))
483 goto out;
484
485 kmsg_dump(KMSG_DUMP_OOPS);
486 /*
487 * A system reset is a request to dump, so we always send
488 * it through the crashdump code (if fadump or kdump are
489 * registered).
490 */
491 crash_fadump(regs, "System Reset");
492
493 crash_kexec(regs);
494
495 /*
496 * We aren't the primary crash CPU. We need to send it
497 * to a holding pattern to avoid it ending up in the panic
498 * code.
499 */
500 crash_kexec_secondary(regs);
501
502 /*
503 * No debugger or crash dump registered, print logs then
504 * panic.
505 */
506 die("System Reset", regs, SIGABRT);
507
508 mdelay(2*MSEC_PER_SEC); /* Wait a little while for others to print */
509 add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
510 nmi_panic(regs, "System Reset");
511
512 out:
513 #ifdef CONFIG_PPC_BOOK3S_64
514 BUG_ON(get_paca()->in_nmi == 0);
515 if (get_paca()->in_nmi > 1)
516 nmi_panic(regs, "Unrecoverable nested System Reset");
517 #endif
518 /* Must die if the interrupt is not recoverable */
519 if (!(regs->msr & MSR_RI))
520 nmi_panic(regs, "Unrecoverable System Reset");
521
522 if (saved_hsrrs) {
523 mtspr(SPRN_HSRR0, hsrr0);
524 mtspr(SPRN_HSRR1, hsrr1);
525 }
526
527 if (!nested)
528 nmi_exit();
529
530 local_paca->ftrace_enabled = ftrace_enabled;
531
532 /* What should we do here? We could issue a shutdown or hard reset. */
533 }
534
---
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: 6413 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20200405/8f4a9088/attachment.gz>
More information about the Linuxppc-dev
mailing list