From: Xianting Tian <xianting.tian@linux.alibaba.com>
To: Palmer Dabbelt <palmer@rivosinc.com>
Cc: dan.carpenter@oracle.com, kbuild@lists.01.org, lkp@intel.com,
kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
guoren@kernel.org
Subject: Re: arch/riscv/kernel/traps.c:48 die() warn: variable dereferenced before check 'regs' (see line 46)
Date: Wed, 21 Sep 2022 09:35:35 +0800 [thread overview]
Message-ID: <452ee5c6-2d1c-16ad-96d1-b0a9e807ff3f@linux.alibaba.com> (raw)
In-Reply-To: <mhng-0ae2d371-db11-4d05-a4e2-006c5f9303eb@palmer-ri-x1c9>
在 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 }
>>>
prev parent reply other threads:[~2022-09-21 1:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-11 10:33 Dan Carpenter
2022-08-11 10:42 ` Xianting Tian
2022-09-20 20:06 ` Palmer Dabbelt
2022-09-21 1:35 ` Xianting Tian [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=452ee5c6-2d1c-16ad-96d1-b0a9e807ff3f@linux.alibaba.com \
--to=xianting.tian@linux.alibaba.com \
--cc=dan.carpenter@oracle.com \
--cc=guoren@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=palmer@rivosinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®