* arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
@ 2022-01-14 2:08 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-01-14 2:08 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 12636 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: fb3b0673b7d5b477ed104949450cd511337ba3c6
commit: 45deb5faeb9e02951361ceba5ffee721745661c3 MIPS: uaccess: Remove get_fs/set_fs call sites
date: 9 months ago
:::::: branch date: 7 hours ago
:::::: commit date: 9 months ago
config: mips-randconfig-m031-20220113 (https://download.01.org/0day-ci/archive/20220114/202201140946.9Nf2xrVz-lkp(a)intel.com/config)
compiler: mips64el-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
arch/mips/kernel/traps.c:195 show_stacktrace() error: uninitialized symbol 'stackdata'.
arch/mips/kernel/traps.c:240 show_code() error: uninitialized symbol 'insn16'.
arch/mips/kernel/traps.c:247 show_code() error: uninitialized symbol 'insn32'.
arch/mips/kernel/traps.c:1054 do_bp() error: uninitialized symbol 'opcode'.
arch/mips/kernel/traps.c:1132 do_tr() error: uninitialized symbol 'opcode'.
Old smatch warnings:
arch/mips/kernel/traps.c:1996 nmi_exception_handler() warn: ignoring unreachable code.
vim +/addr +128 arch/mips/kernel/traps.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 112
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 113 static void show_raw_backtrace(unsigned long reg29, const char *loglvl,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 114 bool user)
e889d78fd5775d Atsushi Nemoto 2006-07-25 115 {
39b8d5254246ac Ralf Baechle 2008-04-28 116 unsigned long *sp = (unsigned long *)(reg29 & ~3);
e889d78fd5775d Atsushi Nemoto 2006-07-25 117 unsigned long addr;
e889d78fd5775d Atsushi Nemoto 2006-07-25 118
96f0458a96892d Dmitry Safonov 2020-06-08 119 printk("%sCall Trace:", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 120 #ifdef CONFIG_KALLSYMS
96f0458a96892d Dmitry Safonov 2020-06-08 121 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 122 #endif
87151ae39bf555 Franck Bui-Huu 2006-08-03 123 while (!kstack_end(sp)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 124 if (__get_addr(&addr, sp++, user)) {
96f0458a96892d Dmitry Safonov 2020-06-08 125 printk("%s (Bad stack address)", loglvl);
10220c884444a1 Thomas Bogendoerfer 2008-05-12 126 break;
10220c884444a1 Thomas Bogendoerfer 2008-05-12 127 }
87151ae39bf555 Franck Bui-Huu 2006-08-03 @128 if (__kernel_text_address(addr))
96f0458a96892d Dmitry Safonov 2020-06-08 129 print_ip_sym(loglvl, addr);
e889d78fd5775d Atsushi Nemoto 2006-07-25 130 }
96f0458a96892d Dmitry Safonov 2020-06-08 131 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 132 }
e889d78fd5775d Atsushi Nemoto 2006-07-25 133
f66686f70a2a61 Atsushi Nemoto 2006-07-29 134 #ifdef CONFIG_KALLSYMS
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 135 int raw_show_trace;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 136 static int __init set_raw_show_trace(char *str)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 137 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 138 raw_show_trace = 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 139 return 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 140 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 141 __setup("raw_show_trace", set_raw_show_trace);
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 142 #endif
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 143
96f0458a96892d Dmitry Safonov 2020-06-08 144 static void show_backtrace(struct task_struct *task, const struct pt_regs *regs,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 145 const char *loglvl, bool user)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 146 {
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 147 unsigned long sp = regs->regs[29];
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 148 unsigned long ra = regs->regs[31];
f66686f70a2a61 Atsushi Nemoto 2006-07-29 149 unsigned long pc = regs->cp0_epc;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 150
e909be825212da Vincent Wen 2012-07-19 151 if (!task)
e909be825212da Vincent Wen 2012-07-19 152 task = current;
e909be825212da Vincent Wen 2012-07-19 153
81a76d7119f63c James Hogan 2015-12-04 154 if (raw_show_trace || user_mode(regs) || !__kernel_text_address(pc)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 155 show_raw_backtrace(sp, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 156 return;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 157 }
96f0458a96892d Dmitry Safonov 2020-06-08 158 printk("%sCall Trace:\n", loglvl);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 159 do {
96f0458a96892d Dmitry Safonov 2020-06-08 160 print_ip_sym(loglvl, pc);
1924600cdb3143 Atsushi Nemoto 2006-09-29 161 pc = unwind_stack(task, &sp, pc, &ra);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 162 } while (pc);
bcf084de5d429c Matt Redfearn 2016-10-19 163 pr_cont("\n");
f66686f70a2a61 Atsushi Nemoto 2006-07-29 164 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 165
^1da177e4c3f41 Linus Torvalds 2005-04-16 166 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 167 * This routine abuses get_user()/put_user() to reference pointers
^1da177e4c3f41 Linus Torvalds 2005-04-16 168 * with at least a bit of error checking ...
^1da177e4c3f41 Linus Torvalds 2005-04-16 169 */
eae23f2c2ac1e4 Ralf Baechle 2007-10-14 170 static void show_stacktrace(struct task_struct *task,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 171 const struct pt_regs *regs, const char *loglvl, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 172 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 173 const int field = 2 * sizeof(unsigned long);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 174 unsigned long stackdata;
^1da177e4c3f41 Linus Torvalds 2005-04-16 175 int i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 176 unsigned long *sp = (unsigned long *)regs->regs[29];
^1da177e4c3f41 Linus Torvalds 2005-04-16 177
96f0458a96892d Dmitry Safonov 2020-06-08 178 printk("%sStack :", loglvl);
^1da177e4c3f41 Linus Torvalds 2005-04-16 179 i = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 180 while ((unsigned long) sp & (PAGE_SIZE - 1)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 181 if (i && ((i % (64 / field)) == 0)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 182 pr_cont("\n");
96f0458a96892d Dmitry Safonov 2020-06-08 183 printk("%s ", loglvl);
fe4e09e7012132 Matt Redfearn 2016-10-19 184 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 185 if (i > 39) {
fe4e09e7012132 Matt Redfearn 2016-10-19 186 pr_cont(" ...");
^1da177e4c3f41 Linus Torvalds 2005-04-16 187 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 188 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 189
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 190 if (__get_addr(&stackdata, sp++, user)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 191 pr_cont(" (Bad stack address)");
^1da177e4c3f41 Linus Torvalds 2005-04-16 192 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 193 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 194
fe4e09e7012132 Matt Redfearn 2016-10-19 @195 pr_cont(" %0*lx", field, stackdata);
^1da177e4c3f41 Linus Torvalds 2005-04-16 196 i++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 197 }
fe4e09e7012132 Matt Redfearn 2016-10-19 198 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 199 show_backtrace(task, regs, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 200 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 201
9cb8f069deeed7 Dmitry Safonov 2020-06-08 202 void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 203 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 204 struct pt_regs regs;
85423636337099 James Hogan 2017-06-29 205
85423636337099 James Hogan 2017-06-29 206 regs.cp0_status = KSU_KERNEL;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 207 if (sp) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 208 regs.regs[29] = (unsigned long)sp;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 209 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 210 regs.cp0_epc = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 211 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 212 if (task && task != current) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 213 regs.regs[29] = task->thread.reg29;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 214 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 215 regs.cp0_epc = task->thread.reg31;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 216 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 217 prepare_frametrace(®s);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 218 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 219 }
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 220 show_stacktrace(task, ®s, loglvl, false);
^1da177e4c3f41 Linus Torvalds 2005-04-16 221 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 222
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 223 static void show_code(void *pc, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 225 long i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 226 unsigned short *pc16 = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 227
41000c5819ee5a Matt Redfearn 2016-10-19 228 printk("Code:");
^1da177e4c3f41 Linus Torvalds 2005-04-16 229
39b8d5254246ac Ralf Baechle 2008-04-28 230 if ((unsigned long)pc & 1)
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 231 pc16 = (u16 *)((unsigned long)pc & ~1);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 232
^1da177e4c3f41 Linus Torvalds 2005-04-16 233 for(i = -3 ; i < 6 ; i++) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 234 if (pc16) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 235 u16 insn16;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 236
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 237 if (__get_inst16(&insn16, pc16 + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 238 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 239
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @240 pr_cont("%c%04x%c", (i?' ':'<'), insn16, (i?' ':'>'));
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 241 } else {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 242 u32 insn32;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 243
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 244 if (__get_inst32(&insn32, (u32 *)pc + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 245 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 246
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @247 pr_cont("%c%08x%c", (i?' ':'<'), insn32, (i?' ':'>'));
^1da177e4c3f41 Linus Torvalds 2005-04-16 248 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 }
41000c5819ee5a Matt Redfearn 2016-10-19 250 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 251 return;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 252
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 253 bad_address:
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 254 pr_cont(" (Bad address in epc)\n\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 255 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 256
:::::: The code at line 128 was first introduced by commit
:::::: 87151ae39bf5556abe83d69af0be9580c32c501b [MIPS] Miscellaneous cleanup in prologue analysis code
:::::: TO: Franck Bui-Huu <vagabon.xyz@gmail.com>
:::::: CC: Ralf Baechle <ralf@linux-mips.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 4+ messages in thread
* arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
@ 2022-02-21 10:33 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-02-21 10:33 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 12717 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: cfb92440ee71adcc2105b0890bb01ac3cddb8507
commit: 45deb5faeb9e02951361ceba5ffee721745661c3 MIPS: uaccess: Remove get_fs/set_fs call sites
date: 11 months ago
:::::: branch date: 13 hours ago
:::::: commit date: 11 months ago
config: mips-randconfig-m031-20220221 (https://download.01.org/0day-ci/archive/20220221/202202211842.CUuYrKD3-lkp(a)intel.com/config)
compiler: mipsel-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
arch/mips/kernel/traps.c:195 show_stacktrace() error: uninitialized symbol 'stackdata'.
arch/mips/kernel/traps.c:240 show_code() error: uninitialized symbol 'insn16'.
arch/mips/kernel/traps.c:247 show_code() error: uninitialized symbol 'insn32'.
arch/mips/kernel/traps.c:1054 do_bp() error: uninitialized symbol 'opcode'.
arch/mips/kernel/traps.c:1132 do_tr() error: uninitialized symbol 'opcode'.
Old smatch warnings:
arch/mips/include/asm/fpu.h:79 __enable_fpu() warn: ignoring unreachable code.
arch/mips/kernel/traps.c:1996 nmi_exception_handler() warn: ignoring unreachable code.
vim +/addr +128 arch/mips/kernel/traps.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 112
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 113 static void show_raw_backtrace(unsigned long reg29, const char *loglvl,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 114 bool user)
e889d78fd5775d Atsushi Nemoto 2006-07-25 115 {
39b8d5254246ac Ralf Baechle 2008-04-28 116 unsigned long *sp = (unsigned long *)(reg29 & ~3);
e889d78fd5775d Atsushi Nemoto 2006-07-25 117 unsigned long addr;
e889d78fd5775d Atsushi Nemoto 2006-07-25 118
96f0458a96892d Dmitry Safonov 2020-06-08 119 printk("%sCall Trace:", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 120 #ifdef CONFIG_KALLSYMS
96f0458a96892d Dmitry Safonov 2020-06-08 121 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 122 #endif
87151ae39bf555 Franck Bui-Huu 2006-08-03 123 while (!kstack_end(sp)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 124 if (__get_addr(&addr, sp++, user)) {
96f0458a96892d Dmitry Safonov 2020-06-08 125 printk("%s (Bad stack address)", loglvl);
10220c884444a1 Thomas Bogendoerfer 2008-05-12 126 break;
10220c884444a1 Thomas Bogendoerfer 2008-05-12 127 }
87151ae39bf555 Franck Bui-Huu 2006-08-03 @128 if (__kernel_text_address(addr))
96f0458a96892d Dmitry Safonov 2020-06-08 129 print_ip_sym(loglvl, addr);
e889d78fd5775d Atsushi Nemoto 2006-07-25 130 }
96f0458a96892d Dmitry Safonov 2020-06-08 131 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 132 }
e889d78fd5775d Atsushi Nemoto 2006-07-25 133
f66686f70a2a61 Atsushi Nemoto 2006-07-29 134 #ifdef CONFIG_KALLSYMS
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 135 int raw_show_trace;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 136 static int __init set_raw_show_trace(char *str)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 137 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 138 raw_show_trace = 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 139 return 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 140 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 141 __setup("raw_show_trace", set_raw_show_trace);
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 142 #endif
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 143
96f0458a96892d Dmitry Safonov 2020-06-08 144 static void show_backtrace(struct task_struct *task, const struct pt_regs *regs,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 145 const char *loglvl, bool user)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 146 {
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 147 unsigned long sp = regs->regs[29];
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 148 unsigned long ra = regs->regs[31];
f66686f70a2a61 Atsushi Nemoto 2006-07-29 149 unsigned long pc = regs->cp0_epc;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 150
e909be825212da Vincent Wen 2012-07-19 151 if (!task)
e909be825212da Vincent Wen 2012-07-19 152 task = current;
e909be825212da Vincent Wen 2012-07-19 153
81a76d7119f63c James Hogan 2015-12-04 154 if (raw_show_trace || user_mode(regs) || !__kernel_text_address(pc)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 155 show_raw_backtrace(sp, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 156 return;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 157 }
96f0458a96892d Dmitry Safonov 2020-06-08 158 printk("%sCall Trace:\n", loglvl);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 159 do {
96f0458a96892d Dmitry Safonov 2020-06-08 160 print_ip_sym(loglvl, pc);
1924600cdb3143 Atsushi Nemoto 2006-09-29 161 pc = unwind_stack(task, &sp, pc, &ra);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 162 } while (pc);
bcf084de5d429c Matt Redfearn 2016-10-19 163 pr_cont("\n");
f66686f70a2a61 Atsushi Nemoto 2006-07-29 164 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 165
^1da177e4c3f41 Linus Torvalds 2005-04-16 166 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 167 * This routine abuses get_user()/put_user() to reference pointers
^1da177e4c3f41 Linus Torvalds 2005-04-16 168 * with at least a bit of error checking ...
^1da177e4c3f41 Linus Torvalds 2005-04-16 169 */
eae23f2c2ac1e4 Ralf Baechle 2007-10-14 170 static void show_stacktrace(struct task_struct *task,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 171 const struct pt_regs *regs, const char *loglvl, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 172 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 173 const int field = 2 * sizeof(unsigned long);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 174 unsigned long stackdata;
^1da177e4c3f41 Linus Torvalds 2005-04-16 175 int i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 176 unsigned long *sp = (unsigned long *)regs->regs[29];
^1da177e4c3f41 Linus Torvalds 2005-04-16 177
96f0458a96892d Dmitry Safonov 2020-06-08 178 printk("%sStack :", loglvl);
^1da177e4c3f41 Linus Torvalds 2005-04-16 179 i = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 180 while ((unsigned long) sp & (PAGE_SIZE - 1)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 181 if (i && ((i % (64 / field)) == 0)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 182 pr_cont("\n");
96f0458a96892d Dmitry Safonov 2020-06-08 183 printk("%s ", loglvl);
fe4e09e7012132 Matt Redfearn 2016-10-19 184 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 185 if (i > 39) {
fe4e09e7012132 Matt Redfearn 2016-10-19 186 pr_cont(" ...");
^1da177e4c3f41 Linus Torvalds 2005-04-16 187 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 188 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 189
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 190 if (__get_addr(&stackdata, sp++, user)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 191 pr_cont(" (Bad stack address)");
^1da177e4c3f41 Linus Torvalds 2005-04-16 192 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 193 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 194
fe4e09e7012132 Matt Redfearn 2016-10-19 @195 pr_cont(" %0*lx", field, stackdata);
^1da177e4c3f41 Linus Torvalds 2005-04-16 196 i++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 197 }
fe4e09e7012132 Matt Redfearn 2016-10-19 198 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 199 show_backtrace(task, regs, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 200 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 201
9cb8f069deeed7 Dmitry Safonov 2020-06-08 202 void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 203 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 204 struct pt_regs regs;
85423636337099 James Hogan 2017-06-29 205
85423636337099 James Hogan 2017-06-29 206 regs.cp0_status = KSU_KERNEL;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 207 if (sp) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 208 regs.regs[29] = (unsigned long)sp;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 209 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 210 regs.cp0_epc = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 211 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 212 if (task && task != current) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 213 regs.regs[29] = task->thread.reg29;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 214 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 215 regs.cp0_epc = task->thread.reg31;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 216 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 217 prepare_frametrace(®s);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 218 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 219 }
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 220 show_stacktrace(task, ®s, loglvl, false);
^1da177e4c3f41 Linus Torvalds 2005-04-16 221 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 222
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 223 static void show_code(void *pc, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 225 long i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 226 unsigned short *pc16 = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 227
41000c5819ee5a Matt Redfearn 2016-10-19 228 printk("Code:");
^1da177e4c3f41 Linus Torvalds 2005-04-16 229
39b8d5254246ac Ralf Baechle 2008-04-28 230 if ((unsigned long)pc & 1)
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 231 pc16 = (u16 *)((unsigned long)pc & ~1);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 232
^1da177e4c3f41 Linus Torvalds 2005-04-16 233 for(i = -3 ; i < 6 ; i++) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 234 if (pc16) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 235 u16 insn16;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 236
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 237 if (__get_inst16(&insn16, pc16 + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 238 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 239
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @240 pr_cont("%c%04x%c", (i?' ':'<'), insn16, (i?' ':'>'));
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 241 } else {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 242 u32 insn32;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 243
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 244 if (__get_inst32(&insn32, (u32 *)pc + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 245 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 246
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @247 pr_cont("%c%08x%c", (i?' ':'<'), insn32, (i?' ':'>'));
^1da177e4c3f41 Linus Torvalds 2005-04-16 248 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 }
41000c5819ee5a Matt Redfearn 2016-10-19 250 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 251 return;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 252
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 253 bad_address:
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 254 pr_cont(" (Bad address in epc)\n\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 255 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 256
:::::: The code at line 128 was first introduced by commit
:::::: 87151ae39bf5556abe83d69af0be9580c32c501b [MIPS] Miscellaneous cleanup in prologue analysis code
:::::: TO: Franck Bui-Huu <vagabon.xyz@gmail.com>
:::::: CC: Ralf Baechle <ralf@linux-mips.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 4+ messages in thread
* arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
@ 2022-01-24 16:54 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-01-24 16:54 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 12637 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dd81e1c7d5fb126e5fbc5c9e334d7b3ec29a16a0
commit: 45deb5faeb9e02951361ceba5ffee721745661c3 MIPS: uaccess: Remove get_fs/set_fs call sites
date: 10 months ago
:::::: branch date: 25 hours ago
:::::: commit date: 10 months ago
config: mips-randconfig-m031-20220124 (https://download.01.org/0day-ci/archive/20220125/202201250019.GQz8w8Zs-lkp(a)intel.com/config)
compiler: mips64-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
arch/mips/kernel/traps.c:195 show_stacktrace() error: uninitialized symbol 'stackdata'.
arch/mips/kernel/traps.c:240 show_code() error: uninitialized symbol 'insn16'.
arch/mips/kernel/traps.c:247 show_code() error: uninitialized symbol 'insn32'.
arch/mips/kernel/traps.c:1054 do_bp() error: uninitialized symbol 'opcode'.
arch/mips/kernel/traps.c:1132 do_tr() error: uninitialized symbol 'opcode'.
Old smatch warnings:
arch/mips/kernel/traps.c:1996 nmi_exception_handler() warn: ignoring unreachable code.
vim +/addr +128 arch/mips/kernel/traps.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 112
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 113 static void show_raw_backtrace(unsigned long reg29, const char *loglvl,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 114 bool user)
e889d78fd5775d Atsushi Nemoto 2006-07-25 115 {
39b8d5254246ac Ralf Baechle 2008-04-28 116 unsigned long *sp = (unsigned long *)(reg29 & ~3);
e889d78fd5775d Atsushi Nemoto 2006-07-25 117 unsigned long addr;
e889d78fd5775d Atsushi Nemoto 2006-07-25 118
96f0458a96892d Dmitry Safonov 2020-06-08 119 printk("%sCall Trace:", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 120 #ifdef CONFIG_KALLSYMS
96f0458a96892d Dmitry Safonov 2020-06-08 121 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 122 #endif
87151ae39bf555 Franck Bui-Huu 2006-08-03 123 while (!kstack_end(sp)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 124 if (__get_addr(&addr, sp++, user)) {
96f0458a96892d Dmitry Safonov 2020-06-08 125 printk("%s (Bad stack address)", loglvl);
10220c884444a1 Thomas Bogendoerfer 2008-05-12 126 break;
10220c884444a1 Thomas Bogendoerfer 2008-05-12 127 }
87151ae39bf555 Franck Bui-Huu 2006-08-03 @128 if (__kernel_text_address(addr))
96f0458a96892d Dmitry Safonov 2020-06-08 129 print_ip_sym(loglvl, addr);
e889d78fd5775d Atsushi Nemoto 2006-07-25 130 }
96f0458a96892d Dmitry Safonov 2020-06-08 131 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 132 }
e889d78fd5775d Atsushi Nemoto 2006-07-25 133
f66686f70a2a61 Atsushi Nemoto 2006-07-29 134 #ifdef CONFIG_KALLSYMS
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 135 int raw_show_trace;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 136 static int __init set_raw_show_trace(char *str)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 137 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 138 raw_show_trace = 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 139 return 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 140 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 141 __setup("raw_show_trace", set_raw_show_trace);
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 142 #endif
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 143
96f0458a96892d Dmitry Safonov 2020-06-08 144 static void show_backtrace(struct task_struct *task, const struct pt_regs *regs,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 145 const char *loglvl, bool user)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 146 {
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 147 unsigned long sp = regs->regs[29];
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 148 unsigned long ra = regs->regs[31];
f66686f70a2a61 Atsushi Nemoto 2006-07-29 149 unsigned long pc = regs->cp0_epc;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 150
e909be825212da Vincent Wen 2012-07-19 151 if (!task)
e909be825212da Vincent Wen 2012-07-19 152 task = current;
e909be825212da Vincent Wen 2012-07-19 153
81a76d7119f63c James Hogan 2015-12-04 154 if (raw_show_trace || user_mode(regs) || !__kernel_text_address(pc)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 155 show_raw_backtrace(sp, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 156 return;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 157 }
96f0458a96892d Dmitry Safonov 2020-06-08 158 printk("%sCall Trace:\n", loglvl);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 159 do {
96f0458a96892d Dmitry Safonov 2020-06-08 160 print_ip_sym(loglvl, pc);
1924600cdb3143 Atsushi Nemoto 2006-09-29 161 pc = unwind_stack(task, &sp, pc, &ra);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 162 } while (pc);
bcf084de5d429c Matt Redfearn 2016-10-19 163 pr_cont("\n");
f66686f70a2a61 Atsushi Nemoto 2006-07-29 164 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 165
^1da177e4c3f41 Linus Torvalds 2005-04-16 166 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 167 * This routine abuses get_user()/put_user() to reference pointers
^1da177e4c3f41 Linus Torvalds 2005-04-16 168 * with at least a bit of error checking ...
^1da177e4c3f41 Linus Torvalds 2005-04-16 169 */
eae23f2c2ac1e4 Ralf Baechle 2007-10-14 170 static void show_stacktrace(struct task_struct *task,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 171 const struct pt_regs *regs, const char *loglvl, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 172 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 173 const int field = 2 * sizeof(unsigned long);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 174 unsigned long stackdata;
^1da177e4c3f41 Linus Torvalds 2005-04-16 175 int i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 176 unsigned long *sp = (unsigned long *)regs->regs[29];
^1da177e4c3f41 Linus Torvalds 2005-04-16 177
96f0458a96892d Dmitry Safonov 2020-06-08 178 printk("%sStack :", loglvl);
^1da177e4c3f41 Linus Torvalds 2005-04-16 179 i = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 180 while ((unsigned long) sp & (PAGE_SIZE - 1)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 181 if (i && ((i % (64 / field)) == 0)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 182 pr_cont("\n");
96f0458a96892d Dmitry Safonov 2020-06-08 183 printk("%s ", loglvl);
fe4e09e7012132 Matt Redfearn 2016-10-19 184 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 185 if (i > 39) {
fe4e09e7012132 Matt Redfearn 2016-10-19 186 pr_cont(" ...");
^1da177e4c3f41 Linus Torvalds 2005-04-16 187 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 188 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 189
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 190 if (__get_addr(&stackdata, sp++, user)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 191 pr_cont(" (Bad stack address)");
^1da177e4c3f41 Linus Torvalds 2005-04-16 192 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 193 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 194
fe4e09e7012132 Matt Redfearn 2016-10-19 @195 pr_cont(" %0*lx", field, stackdata);
^1da177e4c3f41 Linus Torvalds 2005-04-16 196 i++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 197 }
fe4e09e7012132 Matt Redfearn 2016-10-19 198 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 199 show_backtrace(task, regs, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 200 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 201
9cb8f069deeed7 Dmitry Safonov 2020-06-08 202 void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 203 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 204 struct pt_regs regs;
85423636337099 James Hogan 2017-06-29 205
85423636337099 James Hogan 2017-06-29 206 regs.cp0_status = KSU_KERNEL;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 207 if (sp) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 208 regs.regs[29] = (unsigned long)sp;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 209 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 210 regs.cp0_epc = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 211 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 212 if (task && task != current) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 213 regs.regs[29] = task->thread.reg29;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 214 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 215 regs.cp0_epc = task->thread.reg31;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 216 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 217 prepare_frametrace(®s);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 218 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 219 }
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 220 show_stacktrace(task, ®s, loglvl, false);
^1da177e4c3f41 Linus Torvalds 2005-04-16 221 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 222
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 223 static void show_code(void *pc, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 225 long i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 226 unsigned short *pc16 = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 227
41000c5819ee5a Matt Redfearn 2016-10-19 228 printk("Code:");
^1da177e4c3f41 Linus Torvalds 2005-04-16 229
39b8d5254246ac Ralf Baechle 2008-04-28 230 if ((unsigned long)pc & 1)
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 231 pc16 = (u16 *)((unsigned long)pc & ~1);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 232
^1da177e4c3f41 Linus Torvalds 2005-04-16 233 for(i = -3 ; i < 6 ; i++) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 234 if (pc16) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 235 u16 insn16;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 236
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 237 if (__get_inst16(&insn16, pc16 + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 238 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 239
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @240 pr_cont("%c%04x%c", (i?' ':'<'), insn16, (i?' ':'>'));
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 241 } else {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 242 u32 insn32;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 243
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 244 if (__get_inst32(&insn32, (u32 *)pc + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 245 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 246
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @247 pr_cont("%c%08x%c", (i?' ':'<'), insn32, (i?' ':'>'));
^1da177e4c3f41 Linus Torvalds 2005-04-16 248 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 }
41000c5819ee5a Matt Redfearn 2016-10-19 250 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 251 return;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 252
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 253 bad_address:
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 254 pr_cont(" (Bad address in epc)\n\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 255 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 256
:::::: The code at line 128 was first introduced by commit
:::::: 87151ae39bf5556abe83d69af0be9580c32c501b [MIPS] Miscellaneous cleanup in prologue analysis code
:::::: TO: Franck Bui-Huu <vagabon.xyz@gmail.com>
:::::: CC: Ralf Baechle <ralf@linux-mips.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 4+ messages in thread
* arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
@ 2021-12-16 15:37 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-12-16 15:37 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 12635 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
CC: Christoph Hellwig <hch@lst.de>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2b14864acbaaf03d9c01982e243a84632524c3ac
commit: 45deb5faeb9e02951361ceba5ffee721745661c3 MIPS: uaccess: Remove get_fs/set_fs call sites
date: 8 months ago
:::::: branch date: 20 hours ago
:::::: commit date: 8 months ago
config: mips-randconfig-m031-20211216 (https://download.01.org/0day-ci/archive/20211216/202112162341.INAyp2F6-lkp(a)intel.com/config)
compiler: mips64-linux-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr'.
arch/mips/kernel/traps.c:195 show_stacktrace() error: uninitialized symbol 'stackdata'.
arch/mips/kernel/traps.c:240 show_code() error: uninitialized symbol 'insn16'.
arch/mips/kernel/traps.c:247 show_code() error: uninitialized symbol 'insn32'.
arch/mips/kernel/traps.c:1054 do_bp() error: uninitialized symbol 'opcode'.
arch/mips/kernel/traps.c:1132 do_tr() error: uninitialized symbol 'opcode'.
Old smatch warnings:
arch/mips/kernel/traps.c:1996 nmi_exception_handler() warn: ignoring unreachable code.
vim +/addr +128 arch/mips/kernel/traps.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 112
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 113 static void show_raw_backtrace(unsigned long reg29, const char *loglvl,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 114 bool user)
e889d78fd5775d Atsushi Nemoto 2006-07-25 115 {
39b8d5254246ac Ralf Baechle 2008-04-28 116 unsigned long *sp = (unsigned long *)(reg29 & ~3);
e889d78fd5775d Atsushi Nemoto 2006-07-25 117 unsigned long addr;
e889d78fd5775d Atsushi Nemoto 2006-07-25 118
96f0458a96892d Dmitry Safonov 2020-06-08 119 printk("%sCall Trace:", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 120 #ifdef CONFIG_KALLSYMS
96f0458a96892d Dmitry Safonov 2020-06-08 121 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 122 #endif
87151ae39bf555 Franck Bui-Huu 2006-08-03 123 while (!kstack_end(sp)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 124 if (__get_addr(&addr, sp++, user)) {
96f0458a96892d Dmitry Safonov 2020-06-08 125 printk("%s (Bad stack address)", loglvl);
10220c884444a1 Thomas Bogendoerfer 2008-05-12 126 break;
10220c884444a1 Thomas Bogendoerfer 2008-05-12 127 }
87151ae39bf555 Franck Bui-Huu 2006-08-03 @128 if (__kernel_text_address(addr))
96f0458a96892d Dmitry Safonov 2020-06-08 129 print_ip_sym(loglvl, addr);
e889d78fd5775d Atsushi Nemoto 2006-07-25 130 }
96f0458a96892d Dmitry Safonov 2020-06-08 131 printk("%s\n", loglvl);
e889d78fd5775d Atsushi Nemoto 2006-07-25 132 }
e889d78fd5775d Atsushi Nemoto 2006-07-25 133
f66686f70a2a61 Atsushi Nemoto 2006-07-29 134 #ifdef CONFIG_KALLSYMS
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 135 int raw_show_trace;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 136 static int __init set_raw_show_trace(char *str)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 137 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 138 raw_show_trace = 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 139 return 1;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 140 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 141 __setup("raw_show_trace", set_raw_show_trace);
1df0f0ff7e56f6 Atsushi Nemoto 2006-09-26 142 #endif
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 143
96f0458a96892d Dmitry Safonov 2020-06-08 144 static void show_backtrace(struct task_struct *task, const struct pt_regs *regs,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 145 const char *loglvl, bool user)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 146 {
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 147 unsigned long sp = regs->regs[29];
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 148 unsigned long ra = regs->regs[31];
f66686f70a2a61 Atsushi Nemoto 2006-07-29 149 unsigned long pc = regs->cp0_epc;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 150
e909be825212da Vincent Wen 2012-07-19 151 if (!task)
e909be825212da Vincent Wen 2012-07-19 152 task = current;
e909be825212da Vincent Wen 2012-07-19 153
81a76d7119f63c James Hogan 2015-12-04 154 if (raw_show_trace || user_mode(regs) || !__kernel_text_address(pc)) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 155 show_raw_backtrace(sp, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 156 return;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 157 }
96f0458a96892d Dmitry Safonov 2020-06-08 158 printk("%sCall Trace:\n", loglvl);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 159 do {
96f0458a96892d Dmitry Safonov 2020-06-08 160 print_ip_sym(loglvl, pc);
1924600cdb3143 Atsushi Nemoto 2006-09-29 161 pc = unwind_stack(task, &sp, pc, &ra);
4d157d5eac29d7 Franck Bui-Huu 2006-08-03 162 } while (pc);
bcf084de5d429c Matt Redfearn 2016-10-19 163 pr_cont("\n");
f66686f70a2a61 Atsushi Nemoto 2006-07-29 164 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 165
^1da177e4c3f41 Linus Torvalds 2005-04-16 166 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 167 * This routine abuses get_user()/put_user() to reference pointers
^1da177e4c3f41 Linus Torvalds 2005-04-16 168 * with at least a bit of error checking ...
^1da177e4c3f41 Linus Torvalds 2005-04-16 169 */
eae23f2c2ac1e4 Ralf Baechle 2007-10-14 170 static void show_stacktrace(struct task_struct *task,
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 171 const struct pt_regs *regs, const char *loglvl, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 172 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 173 const int field = 2 * sizeof(unsigned long);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 174 unsigned long stackdata;
^1da177e4c3f41 Linus Torvalds 2005-04-16 175 int i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 176 unsigned long *sp = (unsigned long *)regs->regs[29];
^1da177e4c3f41 Linus Torvalds 2005-04-16 177
96f0458a96892d Dmitry Safonov 2020-06-08 178 printk("%sStack :", loglvl);
^1da177e4c3f41 Linus Torvalds 2005-04-16 179 i = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 180 while ((unsigned long) sp & (PAGE_SIZE - 1)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 181 if (i && ((i % (64 / field)) == 0)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 182 pr_cont("\n");
96f0458a96892d Dmitry Safonov 2020-06-08 183 printk("%s ", loglvl);
fe4e09e7012132 Matt Redfearn 2016-10-19 184 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 185 if (i > 39) {
fe4e09e7012132 Matt Redfearn 2016-10-19 186 pr_cont(" ...");
^1da177e4c3f41 Linus Torvalds 2005-04-16 187 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 188 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 189
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 190 if (__get_addr(&stackdata, sp++, user)) {
fe4e09e7012132 Matt Redfearn 2016-10-19 191 pr_cont(" (Bad stack address)");
^1da177e4c3f41 Linus Torvalds 2005-04-16 192 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 193 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 194
fe4e09e7012132 Matt Redfearn 2016-10-19 @195 pr_cont(" %0*lx", field, stackdata);
^1da177e4c3f41 Linus Torvalds 2005-04-16 196 i++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 197 }
fe4e09e7012132 Matt Redfearn 2016-10-19 198 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 199 show_backtrace(task, regs, loglvl, user);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 200 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 201
9cb8f069deeed7 Dmitry Safonov 2020-06-08 202 void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
f66686f70a2a61 Atsushi Nemoto 2006-07-29 203 {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 204 struct pt_regs regs;
85423636337099 James Hogan 2017-06-29 205
85423636337099 James Hogan 2017-06-29 206 regs.cp0_status = KSU_KERNEL;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 207 if (sp) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 208 regs.regs[29] = (unsigned long)sp;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 209 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 210 regs.cp0_epc = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 211 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 212 if (task && task != current) {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 213 regs.regs[29] = task->thread.reg29;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 214 regs.regs[31] = 0;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 215 regs.cp0_epc = task->thread.reg31;
f66686f70a2a61 Atsushi Nemoto 2006-07-29 216 } else {
f66686f70a2a61 Atsushi Nemoto 2006-07-29 217 prepare_frametrace(®s);
f66686f70a2a61 Atsushi Nemoto 2006-07-29 218 }
f66686f70a2a61 Atsushi Nemoto 2006-07-29 219 }
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 220 show_stacktrace(task, ®s, loglvl, false);
^1da177e4c3f41 Linus Torvalds 2005-04-16 221 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 222
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 223 static void show_code(void *pc, bool user)
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 225 long i;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 226 unsigned short *pc16 = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 227
41000c5819ee5a Matt Redfearn 2016-10-19 228 printk("Code:");
^1da177e4c3f41 Linus Torvalds 2005-04-16 229
39b8d5254246ac Ralf Baechle 2008-04-28 230 if ((unsigned long)pc & 1)
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 231 pc16 = (u16 *)((unsigned long)pc & ~1);
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 232
^1da177e4c3f41 Linus Torvalds 2005-04-16 233 for(i = -3 ; i < 6 ; i++) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 234 if (pc16) {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 235 u16 insn16;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 236
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 237 if (__get_inst16(&insn16, pc16 + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 238 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 239
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @240 pr_cont("%c%04x%c", (i?' ':'<'), insn16, (i?' ':'>'));
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 241 } else {
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 242 u32 insn32;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 243
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 244 if (__get_inst32(&insn32, (u32 *)pc + i, user))
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 245 goto bad_address;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 246
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 @247 pr_cont("%c%08x%c", (i?' ':'<'), insn32, (i?' ':'>'));
^1da177e4c3f41 Linus Torvalds 2005-04-16 248 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 }
41000c5819ee5a Matt Redfearn 2016-10-19 250 pr_cont("\n");
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 251 return;
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 252
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 253 bad_address:
45deb5faeb9e02 Thomas Bogendoerfer 2021-04-01 254 pr_cont(" (Bad address in epc)\n\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 255 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 256
:::::: The code at line 128 was first introduced by commit
:::::: 87151ae39bf5556abe83d69af0be9580c32c501b [MIPS] Miscellaneous cleanup in prologue analysis code
:::::: TO: Franck Bui-Huu <vagabon.xyz@gmail.com>
:::::: CC: Ralf Baechle <ralf@linux-mips.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-21 10:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-14 2:08 arch/mips/kernel/traps.c:128 show_raw_backtrace() error: uninitialized symbol 'addr' kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-02-21 10:33 kernel test robot
2022-01-24 16:54 kernel test robot
2021-12-16 15:37 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.