All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
@ 2022-08-11 10:33 ` Dan Carpenter
  0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2022-08-10 21:43 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 3459 bytes --]

BCC: lkp(a)intel.com
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Xianting Tian <xianting.tian@linux.alibaba.com>
CC: Palmer Dabbelt <palmer@rivosinc.com>
CC: Guo Ren <guoren@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f41445645ab5d172e6090d00c332c335d8dba337
commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
date:   3 weeks ago
:::::: branch date: 3 hours ago
:::::: commit date: 3 weeks ago
config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp(a)intel.com/config)
compiler: riscv64-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)

vim +/regs +48 arch/riscv/kernel/traps.c

76d2a0493a17d4 Palmer Dabbelt    2017-07-10  30  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45  
a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47  
3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
3f1901110a89b0 Xianting Tian     2022-06-06  50  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  63  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 9+ messages in thread

* arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
@ 2022-08-11 10:33 ` Dan Carpenter
  0 siblings, 0 replies; 9+ messages in thread
From: Dan Carpenter @ 2022-08-11 10:33 UTC (permalink / raw)
  To: kbuild, Xianting Tian
  Cc: lkp, kbuild-all, linux-kernel, Palmer Dabbelt, Guo Ren

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f41445645ab5d172e6090d00c332c335d8dba337
commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)

vim +/regs +48 arch/riscv/kernel/traps.c

76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45  
a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
                                                                                                 ^^^^^^^^^^^
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47  
3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
                                                            ^^^^

Delete this NULL check.

3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
3f1901110a89b0 Xianting Tian     2022-06-06  50  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp


^ permalink raw reply	[flat|nested] 9+ messages in thread

* arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
@ 2022-08-11 10:33 ` Dan Carpenter
  0 siblings, 0 replies; 9+ messages in thread
From: Dan Carpenter @ 2022-08-11 10:33 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3258 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f41445645ab5d172e6090d00c332c335d8dba337
commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp(a)intel.com/config)
compiler: riscv64-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)

vim +/regs +48 arch/riscv/kernel/traps.c

76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45  
a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
                                                                                                 ^^^^^^^^^^^
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47  
3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
                                                            ^^^^

Delete this NULL check.

3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
3f1901110a89b0 Xianting Tian     2022-06-06  50  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55  
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
  2022-08-11 10:33 ` Dan Carpenter
@ 2022-08-11 10:42   ` Xianting Tian
  -1 siblings, 0 replies; 9+ messages in thread
From: Xianting Tian @ 2022-08-11 10:42 UTC (permalink / raw)
  To: Dan Carpenter, kbuild
  Cc: lkp, kbuild-all, linux-kernel, Palmer Dabbelt, Guo Ren


在 2022/8/11 下午6:33, Dan Carpenter 写道:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   f41445645ab5d172e6090d00c332c335d8dba337
> commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
> config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp@intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 12.1.0
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> smatch warnings:
> arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
>
> vim +/regs +48 arch/riscv/kernel/traps.c
>
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45
> a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
>                                                                                                   ^^^^^^^^^^^
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47
> 3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
>                                                              ^^^^
>
> Delete this NULL check.
thanks,  I will send another fixup patch to fix the issue, is it OK?
>
> 3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
> 3f1901110a89b0 Xianting Tian     2022-06-06  50
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
> 0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
@ 2022-08-11 10:42   ` Xianting Tian
  0 siblings, 0 replies; 9+ messages in thread
From: Xianting Tian @ 2022-08-11 10:42 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3410 bytes --]


在 2022/8/11 下午6:33, Dan Carpenter 写道:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   f41445645ab5d172e6090d00c332c335d8dba337
> commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
> config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp(a)intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 12.1.0
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> smatch warnings:
> arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
>
> vim +/regs +48 arch/riscv/kernel/traps.c
>
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45
> a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
>                                                                                                   ^^^^^^^^^^^
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47
> 3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
>                                                              ^^^^
>
> Delete this NULL check.
thanks,  I will send another fixup patch to fix the issue, is it OK?
>
> 3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
> 3f1901110a89b0 Xianting Tian     2022-06-06  50
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
> 0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
  2022-08-11 10:42   ` Xianting Tian
@ 2022-09-20 20:06     ` Palmer Dabbelt
  -1 siblings, 0 replies; 9+ messages in thread
From: Palmer Dabbelt @ 2022-09-20 20:06 UTC (permalink / raw)
  To: xianting.tian
  Cc: dan.carpenter, kbuild, lkp, kbuild-all, linux-kernel, guoren

On Thu, 11 Aug 2022 03:42:28 PDT (-0700), xianting.tian@linux.alibaba.com wrote:
>
> 在 2022/8/11 下午6:33, Dan Carpenter 写道:
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head:   f41445645ab5d172e6090d00c332c335d8dba337
>> commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
>> config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp@intel.com/config)
>> compiler: riscv64-linux-gcc (GCC) 12.1.0
>>
>> If you fix the issue, kindly add following tag where applicable
>> Reported-by: kernel test robot <lkp@intel.com>
>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>>
>> smatch warnings:
>> arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
>>
>> vim +/regs +48 arch/riscv/kernel/traps.c
>>
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45
>> a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
>>                                                                                                   ^^^^^^^^^^^
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47
>> 3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
>>                                                              ^^^^
>>
>> Delete this NULL check.
> thanks,  I will send another fixup patch to fix the issue, is it OK?

You're always welcome to send fixes, but I didn't see anything so I just 
sent along https://lore.kernel.org/r/20220920200037.6727-1-palmer@rivosinc.com/

>>
>> 3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
>> 3f1901110a89b0 Xianting Tian     2022-06-06  50
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
>> 0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
>>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
@ 2022-09-20 20:06     ` Palmer Dabbelt
  0 siblings, 0 replies; 9+ messages in thread
From: Palmer Dabbelt @ 2022-09-20 20:06 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3714 bytes --]

On Thu, 11 Aug 2022 03:42:28 PDT (-0700), xianting.tian(a)linux.alibaba.com wrote:
>
> 在 2022/8/11 下午6:33, Dan Carpenter 写道:
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head:   f41445645ab5d172e6090d00c332c335d8dba337
>> commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast call path of crash_kexec()
>> config: riscv-randconfig-m031-20220810 (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp(a)intel.com/config)
>> compiler: riscv64-linux-gcc (GCC) 12.1.0
>>
>> If you fix the issue, kindly add following tag where applicable
>> Reported-by: kernel test robot <lkp@intel.com>
>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>>
>> smatch warnings:
>> arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
>>
>> vim +/regs +48 arch/riscv/kernel/traps.c
>>
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct pt_regs *regs, const char *str)
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33  	static int die_counter;
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34  	int ret;
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36  	oops_enter();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38  	spin_lock_irq(&die_lock);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39  	console_verbose();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40  	bust_spinlocks(1);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42  	pr_emerg("%s [#%d]\n", str, ++die_counter);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43  	print_modules();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44  	show_regs(regs);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45
>> a4c3733d32a72f Christoph Hellwig 2019-10-28 @46  	ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
>>                                                                                                   ^^^^^^^^^^^
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47
>> 3f1901110a89b0 Xianting Tian     2022-06-06 @48  	if (regs && kexec_should_crash(current))
>>                                                              ^^^^
>>
>> Delete this NULL check.
> thanks,  I will send another fixup patch to fix the issue, is it OK?

You're always welcome to send fixes, but I didn't see anything so I just 
sent along https://lore.kernel.org/r/20220920200037.6727-1-palmer(a)rivosinc.com/

>>
>> 3f1901110a89b0 Xianting Tian     2022-06-06  49  		crash_kexec(regs);
>> 3f1901110a89b0 Xianting Tian     2022-06-06  50
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51  	bust_spinlocks(0);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52  	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53  	spin_unlock_irq(&die_lock);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54  	oops_exit();
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56  	if (in_interrupt())
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57  		panic("Fatal exception in interrupt");
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58  	if (panic_on_oops)
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59  		panic("Fatal exception");
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60  	if (ret != NOTIFY_STOP)
>> 0e25498f8cd43c Eric W. Biederman 2021-06-28  61  		make_task_dead(SIGSEGV);
>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
>>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
  2022-09-20 20:06     ` Palmer Dabbelt
@ 2022-09-21  1:35       ` Xianting Tian
  -1 siblings, 0 replies; 9+ messages in thread
From: Xianting Tian @ 2022-09-21  1:35 UTC (permalink / raw)
  To: Palmer Dabbelt
  Cc: dan.carpenter, kbuild, lkp, kbuild-all, linux-kernel, guoren


在 2022/9/21 上午4:06, Palmer Dabbelt 写道:
> On Thu, 11 Aug 2022 03:42:28 PDT (-0700), 
> xianting.tian@linux.alibaba.com wrote:
>>
>> 在 2022/8/11 下午6:33, Dan Carpenter 写道:
>>> tree: 
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>> master
>>> head:   f41445645ab5d172e6090d00c332c335d8dba337
>>> commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast 
>>> call path of crash_kexec()
>>> config: riscv-randconfig-m031-20220810 
>>> (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp@intel.com/config)
>>> compiler: riscv64-linux-gcc (GCC) 12.1.0
>>>
>>> If you fix the issue, kindly add following tag where applicable
>>> Reported-by: kernel test robot <lkp@intel.com>
>>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>>>
>>> smatch warnings:
>>> arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced 
>>> before check 'regs' (see line 46)
>>>
>>> vim +/regs +48 arch/riscv/kernel/traps.c
>>>
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct 
>>> pt_regs *regs, const char *str)
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33      static int 
>>> die_counter;
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34      int ret;
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36 oops_enter();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38 
>>> spin_lock_irq(&die_lock);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39 console_verbose();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40 bust_spinlocks(1);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42 pr_emerg("%s 
>>> [#%d]\n", str, ++die_counter);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43 print_modules();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44 show_regs(regs);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45
>>> a4c3733d32a72f Christoph Hellwig 2019-10-28 @46      ret = 
>>> notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
>>> ^^^^^^^^^^^
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47
>>> 3f1901110a89b0 Xianting Tian     2022-06-06 @48      if (regs && 
>>> kexec_should_crash(current))
>>> ^^^^
>>>
>>> Delete this NULL check.
>> thanks,  I will send another fixup patch to fix the issue, is it OK?
>
> You're always welcome to send fixes, but I didn't see anything so I 
> just sent along 
> https://lore.kernel.org/r/20220920200037.6727-1-palmer@rivosinc.com/
Thanks Palmer for the fix :)
>
>>>
>>> 3f1901110a89b0 Xianting Tian     2022-06-06  49 crash_kexec(regs);
>>> 3f1901110a89b0 Xianting Tian     2022-06-06  50
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51 bust_spinlocks(0);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52 add_taint(TAINT_DIE, 
>>> LOCKDEP_NOW_UNRELIABLE);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53 
>>> spin_unlock_irq(&die_lock);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54 oops_exit();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56      if 
>>> (in_interrupt())
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57 panic("Fatal 
>>> exception in interrupt");
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58      if (panic_on_oops)
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59 panic("Fatal 
>>> exception");
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60      if (ret != 
>>> NOTIFY_STOP)
>>> 0e25498f8cd43c Eric W. Biederman 2021-06-28  61 
>>> make_task_dead(SIGSEGV);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
>>>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
@ 2022-09-21  1:35       ` Xianting Tian
  0 siblings, 0 replies; 9+ messages in thread
From: Xianting Tian @ 2022-09-21  1:35 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3965 bytes --]


在 2022/9/21 上午4:06, Palmer Dabbelt 写道:
> On Thu, 11 Aug 2022 03:42:28 PDT (-0700), 
> xianting.tian(a)linux.alibaba.com wrote:
>>
>> 在 2022/8/11 下午6:33, Dan Carpenter 写道:
>>> tree: 
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
>>> master
>>> head:   f41445645ab5d172e6090d00c332c335d8dba337
>>> commit: 3f1901110a89b0e2e13adb2ac8d1a7102879ea98 RISC-V: Add fast 
>>> call path of crash_kexec()
>>> config: riscv-randconfig-m031-20220810 
>>> (https://download.01.org/0day-ci/archive/20220811/202208110538.uaLOQmBs-lkp(a)intel.com/config)
>>> compiler: riscv64-linux-gcc (GCC) 12.1.0
>>>
>>> If you fix the issue, kindly add following tag where applicable
>>> Reported-by: kernel test robot <lkp@intel.com>
>>> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>>>
>>> smatch warnings:
>>> arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced 
>>> before check 'regs' (see line 46)
>>>
>>> vim +/regs +48 arch/riscv/kernel/traps.c
>>>
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  31  void die(struct 
>>> pt_regs *regs, const char *str)
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  32  {
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  33      static int 
>>> die_counter;
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  34      int ret;
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  35
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  36 oops_enter();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  37
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  38 
>>> spin_lock_irq(&die_lock);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  39 console_verbose();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  40 bust_spinlocks(1);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  41
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  42 pr_emerg("%s 
>>> [#%d]\n", str, ++die_counter);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  43 print_modules();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  44 show_regs(regs);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  45
>>> a4c3733d32a72f Christoph Hellwig 2019-10-28 @46      ret = 
>>> notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV);
>>> ^^^^^^^^^^^
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  47
>>> 3f1901110a89b0 Xianting Tian     2022-06-06 @48      if (regs && 
>>> kexec_should_crash(current))
>>> ^^^^
>>>
>>> Delete this NULL check.
>> thanks,  I will send another fixup patch to fix the issue, is it OK?
>
> You're always welcome to send fixes, but I didn't see anything so I 
> just sent along 
> https://lore.kernel.org/r/20220920200037.6727-1-palmer(a)rivosinc.com/
Thanks Palmer for the fix :)
>
>>>
>>> 3f1901110a89b0 Xianting Tian     2022-06-06  49 crash_kexec(regs);
>>> 3f1901110a89b0 Xianting Tian     2022-06-06  50
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  51 bust_spinlocks(0);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  52 add_taint(TAINT_DIE, 
>>> LOCKDEP_NOW_UNRELIABLE);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  53 
>>> spin_unlock_irq(&die_lock);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  54 oops_exit();
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  55
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  56      if 
>>> (in_interrupt())
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  57 panic("Fatal 
>>> exception in interrupt");
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  58      if (panic_on_oops)
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  59 panic("Fatal 
>>> exception");
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  60      if (ret != 
>>> NOTIFY_STOP)
>>> 0e25498f8cd43c Eric W. Biederman 2021-06-28  61 
>>> make_task_dead(SIGSEGV);
>>> 76d2a0493a17d4 Palmer Dabbelt    2017-07-10  62  }
>>>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-09-21  1:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-10 21:43 arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46) kernel test robot
2022-08-11 10:33 ` Dan Carpenter
2022-08-11 10:33 ` Dan Carpenter
2022-08-11 10:42 ` Xianting Tian
2022-08-11 10:42   ` Xianting Tian
2022-09-20 20:06   ` Palmer Dabbelt
2022-09-20 20:06     ` Palmer Dabbelt
2022-09-21  1:35     ` Xianting Tian
2022-09-21  1:35       ` Xianting Tian

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.