lib/stack: Add stack overrun detection

Change-Id: I9a59fcb7cf221ae590a047c520e7aff99e23ecf1
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Reviewed-on: http://review.coreboot.org/11962
Tested-by: build bot (Jenkins)
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Timothy Pearson 2015-09-05 19:31:03 -05:00 committed by Peter Stuge
parent d59dc4532b
commit 478575c049
1 changed files with 3 additions and 2 deletions

View File

@ -18,6 +18,7 @@ it with the version available from LANL.
*/ */
/* Copyright 2000, Ron Minnich, Advanced Computing Lab, LANL /* Copyright 2000, Ron Minnich, Advanced Computing Lab, LANL
* rminnich@lanl.gov * rminnich@lanl.gov
* Copyright (C) 2015 Timothy Pearson <tpearson@raptorengineeringinc.com>, Raptor Engineering
*/ */
#include <assert.h> #include <assert.h>
@ -33,9 +34,9 @@ int checkstack(void *top_of_stack, int core)
u32 *stack = (u32 *) (top_of_stack - stack_size); u32 *stack = (u32 *) (top_of_stack - stack_size);
if (stack[0] != 0xDEADBEEF){ if (stack[0] != 0xDEADBEEF){
printk(BIOS_ERR, "Stack overrun on CPU%d. " printk(BIOS_ERR, "Stack overrun on CPU%d (address %p overwritten). "
"Increase stack from current %zu bytes\n", "Increase stack from current %zu bytes\n",
core, stack_size); core, stack, stack_size);
BUG(); BUG();
return -1; return -1;
} }