diff options
Diffstat (limited to 'sys/arch/amd64/amd64/machdep.c')
-rw-r--r-- | sys/arch/amd64/amd64/machdep.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/arch/amd64/amd64/machdep.c b/sys/arch/amd64/amd64/machdep.c index 76c1a5f..1a07cb5 100644 --- a/sys/arch/amd64/amd64/machdep.c +++ b/sys/arch/amd64/amd64/machdep.c @@ -404,7 +404,7 @@ cpu_shootdown_tlb(vaddr_t va) void md_backtrace(void) { - uintptr_t *rbp; + uintptr_t *rbp = NULL; uintptr_t rip, tmp; off_t off; const char *name; @@ -417,6 +417,11 @@ md_backtrace(void) break; } + /* End of callstack */ + if (rbp == NULL) { + break; + } + rip = rbp[1]; rbp = (uintptr_t *)rbp[0]; @@ -434,7 +439,7 @@ md_backtrace(void) * This is not a valid value, get out * of this loop!! */ - if (rbp == NULL || rip == 0) { + if (rip == 0) { break; } |