* arch/arm64/kernel/stacktrace.c:178:26: warning: Either the condition 'regs' is redundant or there is possible null pointer dereference: regs.
@ 2021-02-18 22:50 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-02-18 22:50 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 4982 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Mark Brown <broonie@kernel.org>
CC: Will Deacon <will@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f40ddce88593482919761f74910f42f4b84c004b
commit: 9e0f085c2b33ebe13bcec53cbacce505fe78fde7 arm64: Move console stack display code to stacktrace.c
date: 5 months ago
:::::: branch date: 4 days ago
:::::: commit date: 5 months ago
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
>> arch/arm64/kernel/stacktrace.c:178:26: warning: Either the condition 'regs' is redundant or there is possible null pointer dereference: regs. [nullPointerRedundantCheck]
} else if (frame.fp == regs->regs[29]) {
^
arch/arm64/kernel/stacktrace.c:148:6: note: Assuming that condition 'regs' is not redundant
if (regs) {
^
arch/arm64/kernel/stacktrace.c:178:26: note: Null pointer dereference
} else if (frame.fp == regs->regs[29]) {
^
vim +/regs +178 arch/arm64/kernel/stacktrace.c
9e0f085c2b33eb Mark Brown 2020-09-21 139
9e0f085c2b33eb Mark Brown 2020-09-21 140 void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk,
9e0f085c2b33eb Mark Brown 2020-09-21 141 const char *loglvl)
9e0f085c2b33eb Mark Brown 2020-09-21 142 {
9e0f085c2b33eb Mark Brown 2020-09-21 143 struct stackframe frame;
9e0f085c2b33eb Mark Brown 2020-09-21 144 int skip = 0;
9e0f085c2b33eb Mark Brown 2020-09-21 145
9e0f085c2b33eb Mark Brown 2020-09-21 146 pr_debug("%s(regs = %p tsk = %p)\n", __func__, regs, tsk);
9e0f085c2b33eb Mark Brown 2020-09-21 147
9e0f085c2b33eb Mark Brown 2020-09-21 148 if (regs) {
9e0f085c2b33eb Mark Brown 2020-09-21 149 if (user_mode(regs))
9e0f085c2b33eb Mark Brown 2020-09-21 150 return;
9e0f085c2b33eb Mark Brown 2020-09-21 151 skip = 1;
9e0f085c2b33eb Mark Brown 2020-09-21 152 }
9e0f085c2b33eb Mark Brown 2020-09-21 153
9e0f085c2b33eb Mark Brown 2020-09-21 154 if (!tsk)
9e0f085c2b33eb Mark Brown 2020-09-21 155 tsk = current;
9e0f085c2b33eb Mark Brown 2020-09-21 156
9e0f085c2b33eb Mark Brown 2020-09-21 157 if (!try_get_task_stack(tsk))
9e0f085c2b33eb Mark Brown 2020-09-21 158 return;
9e0f085c2b33eb Mark Brown 2020-09-21 159
9e0f085c2b33eb Mark Brown 2020-09-21 160 if (tsk == current) {
9e0f085c2b33eb Mark Brown 2020-09-21 161 start_backtrace(&frame,
9e0f085c2b33eb Mark Brown 2020-09-21 162 (unsigned long)__builtin_frame_address(0),
9e0f085c2b33eb Mark Brown 2020-09-21 163 (unsigned long)dump_backtrace);
9e0f085c2b33eb Mark Brown 2020-09-21 164 } else {
9e0f085c2b33eb Mark Brown 2020-09-21 165 /*
9e0f085c2b33eb Mark Brown 2020-09-21 166 * task blocked in __switch_to
9e0f085c2b33eb Mark Brown 2020-09-21 167 */
9e0f085c2b33eb Mark Brown 2020-09-21 168 start_backtrace(&frame,
9e0f085c2b33eb Mark Brown 2020-09-21 169 thread_saved_fp(tsk),
9e0f085c2b33eb Mark Brown 2020-09-21 170 thread_saved_pc(tsk));
9e0f085c2b33eb Mark Brown 2020-09-21 171 }
9e0f085c2b33eb Mark Brown 2020-09-21 172
9e0f085c2b33eb Mark Brown 2020-09-21 173 printk("%sCall trace:\n", loglvl);
9e0f085c2b33eb Mark Brown 2020-09-21 174 do {
9e0f085c2b33eb Mark Brown 2020-09-21 175 /* skip until specified stack frame */
9e0f085c2b33eb Mark Brown 2020-09-21 176 if (!skip) {
9e0f085c2b33eb Mark Brown 2020-09-21 177 dump_backtrace_entry(frame.pc, loglvl);
9e0f085c2b33eb Mark Brown 2020-09-21 @178 } else if (frame.fp == regs->regs[29]) {
9e0f085c2b33eb Mark Brown 2020-09-21 179 skip = 0;
9e0f085c2b33eb Mark Brown 2020-09-21 180 /*
9e0f085c2b33eb Mark Brown 2020-09-21 181 * Mostly, this is the case where this function is
9e0f085c2b33eb Mark Brown 2020-09-21 182 * called in panic/abort. As exception handler's
9e0f085c2b33eb Mark Brown 2020-09-21 183 * stack frame does not contain the corresponding pc
9e0f085c2b33eb Mark Brown 2020-09-21 184 * at which an exception has taken place, use regs->pc
9e0f085c2b33eb Mark Brown 2020-09-21 185 * instead.
9e0f085c2b33eb Mark Brown 2020-09-21 186 */
9e0f085c2b33eb Mark Brown 2020-09-21 187 dump_backtrace_entry(regs->pc, loglvl);
9e0f085c2b33eb Mark Brown 2020-09-21 188 }
9e0f085c2b33eb Mark Brown 2020-09-21 189 } while (!unwind_frame(tsk, &frame));
9e0f085c2b33eb Mark Brown 2020-09-21 190
9e0f085c2b33eb Mark Brown 2020-09-21 191 put_task_stack(tsk);
9e0f085c2b33eb Mark Brown 2020-09-21 192 }
9e0f085c2b33eb Mark Brown 2020-09-21 193
---
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] only message in thread
only message in thread, other threads:[~2021-02-18 22:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-18 22:50 arch/arm64/kernel/stacktrace.c:178:26: warning: Either the condition 'regs' is redundant or there is possible null pointer dereference: regs 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.