* arch/loongarch/kernel/traps.c:407 die() warn: variable dereferenced before check 'regs' (see line 401)
@ 2023-11-26 23:32 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2023-11-26 23:32 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Qi Hu <huqi@loongson.cn>
CC: Huacai Chen <chenhuacai@kernel.org>
Hi Qi,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d2da77f431ac49b5763b88751a75f70daa46296c
commit: 346dc929623cef70ff7832a4fa0ffd1b696e312a LoongArch: Fix the write_fcsr() macro
date: 6 months ago
:::::: branch date: 3 hours ago
:::::: commit date: 6 months ago
config: loongarch-randconfig-r071-20231126 (https://download.01.org/0day-ci/archive/20231127/202311270400.2cHw6Jsv-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231127/202311270400.2cHw6Jsv-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202311270400.2cHw6Jsv-lkp@intel.com/
New smatch warnings:
arch/loongarch/kernel/traps.c:407 die() warn: variable dereferenced before check 'regs' (see line 401)
Old smatch warnings:
arch/loongarch/kernel/traps.c:112 show_stacktrace() error: uninitialized symbol 'stackdata'.
arch/loongarch/kernel/traps.c:154 show_code() error: uninitialized symbol 'insn'.
arch/loongarch/kernel/traps.c:696 do_bp() error: uninitialized symbol 'opcode'.
vim +/regs +407 arch/loongarch/kernel/traps.c
0603839b18f4fb Huacai Chen 2022-05-31 384
0603839b18f4fb Huacai Chen 2022-05-31 385 void __noreturn die(const char *str, struct pt_regs *regs)
0603839b18f4fb Huacai Chen 2022-05-31 386 {
0603839b18f4fb Huacai Chen 2022-05-31 387 static int die_counter;
0603839b18f4fb Huacai Chen 2022-05-31 388 int sig = SIGSEGV;
0603839b18f4fb Huacai Chen 2022-05-31 389
0603839b18f4fb Huacai Chen 2022-05-31 390 oops_enter();
0603839b18f4fb Huacai Chen 2022-05-31 391
0603839b18f4fb Huacai Chen 2022-05-31 392 if (notify_die(DIE_OOPS, str, regs, 0, current->thread.trap_nr,
0603839b18f4fb Huacai Chen 2022-05-31 393 SIGSEGV) == NOTIFY_STOP)
0603839b18f4fb Huacai Chen 2022-05-31 394 sig = 0;
0603839b18f4fb Huacai Chen 2022-05-31 395
0603839b18f4fb Huacai Chen 2022-05-31 396 console_verbose();
0603839b18f4fb Huacai Chen 2022-05-31 397 raw_spin_lock_irq(&die_lock);
0603839b18f4fb Huacai Chen 2022-05-31 398 bust_spinlocks(1);
0603839b18f4fb Huacai Chen 2022-05-31 399
0603839b18f4fb Huacai Chen 2022-05-31 400 printk("%s[#%d]:\n", str, ++die_counter);
0603839b18f4fb Huacai Chen 2022-05-31 @401 show_registers(regs);
0603839b18f4fb Huacai Chen 2022-05-31 402 add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
0603839b18f4fb Huacai Chen 2022-05-31 403 raw_spin_unlock_irq(&die_lock);
0603839b18f4fb Huacai Chen 2022-05-31 404
0603839b18f4fb Huacai Chen 2022-05-31 405 oops_exit();
0603839b18f4fb Huacai Chen 2022-05-31 406
4e62d1d86585e1 Youling Tang 2022-10-12 @407 if (regs && kexec_should_crash(current))
4e62d1d86585e1 Youling Tang 2022-10-12 408 crash_kexec(regs);
4e62d1d86585e1 Youling Tang 2022-10-12 409
0603839b18f4fb Huacai Chen 2022-05-31 410 if (in_interrupt())
0603839b18f4fb Huacai Chen 2022-05-31 411 panic("Fatal exception in interrupt");
0603839b18f4fb Huacai Chen 2022-05-31 412
0603839b18f4fb Huacai Chen 2022-05-31 413 if (panic_on_oops)
0603839b18f4fb Huacai Chen 2022-05-31 414 panic("Fatal exception");
0603839b18f4fb Huacai Chen 2022-05-31 415
0603839b18f4fb Huacai Chen 2022-05-31 416 make_task_dead(sig);
0603839b18f4fb Huacai Chen 2022-05-31 417 }
0603839b18f4fb Huacai Chen 2022-05-31 418
:::::: The code at line 407 was first introduced by commit
:::::: 4e62d1d86585e1b62b4f96ee586881dd45a443dc LoongArch: Add kdump support
:::::: TO: Youling Tang <tangyouling@loongson.cn>
:::::: CC: Huacai Chen <chenhuacai@loongson.cn>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* arch/loongarch/kernel/traps.c:407 die() warn: variable dereferenced before check 'regs' (see line 401)
@ 2023-11-27 8:38 Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2023-11-27 8:38 UTC (permalink / raw)
To: oe-kbuild, Qi Hu; +Cc: lkp, oe-kbuild-all, linux-kernel, Huacai Chen
Hi Qi,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d2da77f431ac49b5763b88751a75f70daa46296c
commit: 346dc929623cef70ff7832a4fa0ffd1b696e312a LoongArch: Fix the write_fcsr() macro
config: loongarch-randconfig-r071-20231126 (https://download.01.org/0day-ci/archive/20231127/202311270400.2cHw6Jsv-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231127/202311270400.2cHw6Jsv-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202311270400.2cHw6Jsv-lkp@intel.com/
New smatch warnings:
arch/loongarch/kernel/traps.c:407 die() warn: variable dereferenced before check 'regs' (see line 401)
vim +/regs +407 arch/loongarch/kernel/traps.c
0603839b18f4fb Huacai Chen 2022-05-31 385 void __noreturn die(const char *str, struct pt_regs *regs)
0603839b18f4fb Huacai Chen 2022-05-31 386 {
0603839b18f4fb Huacai Chen 2022-05-31 387 static int die_counter;
0603839b18f4fb Huacai Chen 2022-05-31 388 int sig = SIGSEGV;
0603839b18f4fb Huacai Chen 2022-05-31 389
0603839b18f4fb Huacai Chen 2022-05-31 390 oops_enter();
0603839b18f4fb Huacai Chen 2022-05-31 391
0603839b18f4fb Huacai Chen 2022-05-31 392 if (notify_die(DIE_OOPS, str, regs, 0, current->thread.trap_nr,
0603839b18f4fb Huacai Chen 2022-05-31 393 SIGSEGV) == NOTIFY_STOP)
0603839b18f4fb Huacai Chen 2022-05-31 394 sig = 0;
0603839b18f4fb Huacai Chen 2022-05-31 395
0603839b18f4fb Huacai Chen 2022-05-31 396 console_verbose();
0603839b18f4fb Huacai Chen 2022-05-31 397 raw_spin_lock_irq(&die_lock);
0603839b18f4fb Huacai Chen 2022-05-31 398 bust_spinlocks(1);
0603839b18f4fb Huacai Chen 2022-05-31 399
0603839b18f4fb Huacai Chen 2022-05-31 400 printk("%s[#%d]:\n", str, ++die_counter);
0603839b18f4fb Huacai Chen 2022-05-31 @401 show_registers(regs);
^^^^
Dereferenced
0603839b18f4fb Huacai Chen 2022-05-31 402 add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
0603839b18f4fb Huacai Chen 2022-05-31 403 raw_spin_unlock_irq(&die_lock);
0603839b18f4fb Huacai Chen 2022-05-31 404
0603839b18f4fb Huacai Chen 2022-05-31 405 oops_exit();
0603839b18f4fb Huacai Chen 2022-05-31 406
4e62d1d86585e1 Youling Tang 2022-10-12 @407 if (regs && kexec_should_crash(current))
^^^^
Checked too late
4e62d1d86585e1 Youling Tang 2022-10-12 408 crash_kexec(regs);
4e62d1d86585e1 Youling Tang 2022-10-12 409
0603839b18f4fb Huacai Chen 2022-05-31 410 if (in_interrupt())
0603839b18f4fb Huacai Chen 2022-05-31 411 panic("Fatal exception in interrupt");
0603839b18f4fb Huacai Chen 2022-05-31 412
0603839b18f4fb Huacai Chen 2022-05-31 413 if (panic_on_oops)
0603839b18f4fb Huacai Chen 2022-05-31 414 panic("Fatal exception");
0603839b18f4fb Huacai Chen 2022-05-31 415
0603839b18f4fb Huacai Chen 2022-05-31 416 make_task_dead(sig);
0603839b18f4fb Huacai Chen 2022-05-31 417 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-11-27 8:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-26 23:32 arch/loongarch/kernel/traps.c:407 die() warn: variable dereferenced before check 'regs' (see line 401) kernel test robot
2023-11-27 8:38 Dan Carpenter
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.