summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/amd64/amd64/machdep.c9
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;
}