Hi Wang,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on next-20200611]
[cannot apply to arm64/for-next/core arm-perf/for-next/perf soc/for-next arm/for-next
xlnx/master kvmarm/next v5.7 v5.7-rc7 v5.7-rc6 v5.7]
[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/Wang-Qing/arm64-smp-call-when-ta...
base: 192e08e14e37b78e83cc2f5b9eb5a15a7d71c4e2
config: arm64-allyesconfig (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(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
arch/arm64/kernel/traps.c: In function 'dump_backtrace':
> arch/arm64/kernel/traps.c:119:38: error:
'dump_backtrace_fun' undeclared (first use in this function); did you mean
'dump_backtrace_smp_fun'?
119 | smp_call_function_single(tsk->cpu,
dump_backtrace_fun, tsk, 0);
| ^~~~~~~~~~~~~~~~~~
| dump_backtrace_smp_fun
arch/arm64/kernel/traps.c:119:38: note: each undeclared identifier is reported only once
for each function it appears in
arch/arm64/kernel/traps.c: At top level:
arch/arm64/kernel/traps.c:768:26: warning: initialized field overwritten
[-Woverride-init]
768 | [ESR_ELx_EC_UNKNOWN] = "Unknown/Uncategorized",
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:768:26: note: (near initialization for
'esr_class_str[0]')
arch/arm64/kernel/traps.c:769:22: warning: initialized field overwritten
[-Woverride-init]
769 | [ESR_ELx_EC_WFx] = "WFI/WFE",
| ^~~~~~~~~
arch/arm64/kernel/traps.c:769:22: note: (near initialization for
'esr_class_str[1]')
arch/arm64/kernel/traps.c:770:26: warning: initialized field overwritten
[-Woverride-init]
770 | [ESR_ELx_EC_CP15_32] = "CP15 MCR/MRC",
| ^~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:770:26: note: (near initialization for
'esr_class_str[3]')
arch/arm64/kernel/traps.c:771:26: warning: initialized field overwritten
[-Woverride-init]
771 | [ESR_ELx_EC_CP15_64] = "CP15 MCRR/MRRC",
| ^~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:771:26: note: (near initialization for
'esr_class_str[4]')
arch/arm64/kernel/traps.c:772:26: warning: initialized field overwritten
[-Woverride-init]
772 | [ESR_ELx_EC_CP14_MR] = "CP14 MCR/MRC",
| ^~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:772:26: note: (near initialization for
'esr_class_str[5]')
arch/arm64/kernel/traps.c:773:26: warning: initialized field overwritten
[-Woverride-init]
773 | [ESR_ELx_EC_CP14_LS] = "CP14 LDC/STC",
| ^~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:773:26: note: (near initialization for
'esr_class_str[6]')
arch/arm64/kernel/traps.c:774:27: warning: initialized field overwritten
[-Woverride-init]
774 | [ESR_ELx_EC_FP_ASIMD] = "ASIMD",
| ^~~~~~~
arch/arm64/kernel/traps.c:774:27: note: (near initialization for
'esr_class_str[7]')
arch/arm64/kernel/traps.c:775:26: warning: initialized field overwritten
[-Woverride-init]
775 | [ESR_ELx_EC_CP10_ID] = "CP10 MRC/VMRS",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:775:26: note: (near initialization for
'esr_class_str[8]')
arch/arm64/kernel/traps.c:776:22: warning: initialized field overwritten
[-Woverride-init]
776 | [ESR_ELx_EC_PAC] = "PAC",
| ^~~~~
arch/arm64/kernel/traps.c:776:22: note: (near initialization for
'esr_class_str[9]')
arch/arm64/kernel/traps.c:777:26: warning: initialized field overwritten
[-Woverride-init]
777 | [ESR_ELx_EC_CP14_64] = "CP14 MCRR/MRRC",
| ^~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:777:26: note: (near initialization for
'esr_class_str[12]')
arch/arm64/kernel/traps.c:778:22: warning: initialized field overwritten
[-Woverride-init]
778 | [ESR_ELx_EC_BTI] = "BTI",
| ^~~~~
arch/arm64/kernel/traps.c:778:22: note: (near initialization for
'esr_class_str[13]')
arch/arm64/kernel/traps.c:779:22: warning: initialized field overwritten
[-Woverride-init]
779 | [ESR_ELx_EC_ILL] = "PSTATE.IL",
| ^~~~~~~~~~~
arch/arm64/kernel/traps.c:779:22: note: (near initialization for
'esr_class_str[14]')
arch/arm64/kernel/traps.c:780:24: warning: initialized field overwritten
[-Woverride-init]
780 | [ESR_ELx_EC_SVC32] = "SVC (AArch32)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:780:24: note: (near initialization for
'esr_class_str[17]')
arch/arm64/kernel/traps.c:781:24: warning: initialized field overwritten
[-Woverride-init]
781 | [ESR_ELx_EC_HVC32] = "HVC (AArch32)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:781:24: note: (near initialization for
'esr_class_str[18]')
arch/arm64/kernel/traps.c:782:24: warning: initialized field overwritten
[-Woverride-init]
782 | [ESR_ELx_EC_SMC32] = "SMC (AArch32)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:782:24: note: (near initialization for
'esr_class_str[19]')
arch/arm64/kernel/traps.c:783:24: warning: initialized field overwritten
[-Woverride-init]
783 | [ESR_ELx_EC_SVC64] = "SVC (AArch64)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:783:24: note: (near initialization for
'esr_class_str[21]')
arch/arm64/kernel/traps.c:784:24: warning: initialized field overwritten
[-Woverride-init]
784 | [ESR_ELx_EC_HVC64] = "HVC (AArch64)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:784:24: note: (near initialization for
'esr_class_str[22]')
arch/arm64/kernel/traps.c:785:24: warning: initialized field overwritten
[-Woverride-init]
785 | [ESR_ELx_EC_SMC64] = "SMC (AArch64)",
| ^~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:785:24: note: (near initialization for
'esr_class_str[23]')
arch/arm64/kernel/traps.c:786:24: warning: initialized field overwritten
[-Woverride-init]
786 | [ESR_ELx_EC_SYS64] = "MSR/MRS (AArch64)",
| ^~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:786:24: note: (near initialization for
'esr_class_str[24]')
arch/arm64/kernel/traps.c:787:22: warning: initialized field overwritten
[-Woverride-init]
787 | [ESR_ELx_EC_SVE] = "SVE",
| ^~~~~
arch/arm64/kernel/traps.c:787:22: note: (near initialization for
'esr_class_str[25]')
arch/arm64/kernel/traps.c:788:23: warning: initialized field overwritten
[-Woverride-init]
788 | [ESR_ELx_EC_ERET] = "ERET/ERETAA/ERETAB",
| ^~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:788:23: note: (near initialization for
'esr_class_str[26]')
arch/arm64/kernel/traps.c:789:26: warning: initialized field overwritten
[-Woverride-init]
789 | [ESR_ELx_EC_IMP_DEF] = "EL3 IMP DEF",
| ^~~~~~~~~~~~~
arch/arm64/kernel/traps.c:789:26: note: (near initialization for
'esr_class_str[31]')
arch/arm64/kernel/traps.c:790:27: warning: initialized field overwritten
[-Woverride-init]
790 | [ESR_ELx_EC_IABT_LOW] = "IABT (lower EL)",
| ^~~~~~~~~~~~~~~~~
arch/arm64/kernel/traps.c:790:27: note: (near initialization for
'esr_class_str[32]')
arch/arm64/kernel/traps.c:791:27: warning: initialized field overwritten
[-Woverride-init]
791 | [ESR_ELx_EC_IABT_CUR] = "IABT (current EL)",
| ^~~~~~~~~~~~~~~~~~~
vim +119 arch/arm64/kernel/traps.c
90
91 void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk,
92 const char *loglvl)
93 {
94 struct stackframe frame;
95 int skip = 0;
96
97 pr_debug("%s(regs = %p tsk = %p)\n", __func__, regs, tsk);
98
99 if (regs) {
100 if (user_mode(regs))
101 return;
102 skip = 1;
103 }
104
105 if (!tsk)
106 tsk = current;
107
108 if (!try_get_task_stack(tsk))
109 return;
110
111 if (tsk == current) {
112 start_backtrace(&frame,
113 (unsigned long)__builtin_frame_address(0),
114 (unsigned long)dump_backtrace);
115 } else if (task_curr(tsk)) {
116 /*
117 * The task is currently running on other cpu
118 */
119 smp_call_function_single(tsk->cpu, dump_backtrace_fun, tsk,
0);
120 return;
121 } else {
122 /*
123 * task blocked in __switch_to
124 */
125 start_backtrace(&frame,
126 thread_saved_fp(tsk),
127 thread_saved_pc(tsk));
128 }
129
130 printk("%sCall trace:\n", loglvl);
131 do {
132 /* skip until specified stack frame */
133 if (!skip) {
134 dump_backtrace_entry(frame.pc, loglvl);
135 } else if (frame.fp == regs->regs[29]) {
136 skip = 0;
137 /*
138 * Mostly, this is the case where this function is
139 * called in panic/abort. As exception handler's
140 * stack frame does not contain the corresponding pc
141 * at which an exception has taken place, use regs->pc
142 * instead.
143 */
144 dump_backtrace_entry(regs->pc, loglvl);
145 }
146 } while (!unwind_frame(tsk, &frame));
147
148 put_task_stack(tsk);
149 }
150
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org