Revert "Added check to ensure KDL does not include frames beyond kernel entry in the backtrace. This prevents KDL from faulting when printing backtrace on ARM."

This reverts commit 3fbb24680c.

As I mentioned in #11131, this fix is not correct, and works around
the problem. The real reason was that arch_debug_call_with_fault_handler
was not working properly, so the fault handler went crazy.

With commit eb92810 that is fixed so this can be reverted.
This commit is contained in:
Ithamar R. Adema 2014-09-07 19:15:01 +02:00
parent eb92810edc
commit 6048591e9d
3 changed files with 12 additions and 11 deletions

View File

@ -9,7 +9,7 @@
// memory layout
#define KERNEL_BASE 0x80000000
#define KERNEL_SIZE 0x800000
#define KERNEL_SIZE 0x80000000
#define KERNEL_TOP (KERNEL_BASE + (KERNEL_SIZE - 1))
/*

View File

@ -59,7 +59,7 @@ TODO:
// 8 MB for the kernel, kernel args, modules, driver settings, ...
static const size_t kMaxKernelSize = KERNEL_SIZE;
static const size_t kMaxKernelSize = 0x800000;
// Base address for loader
static const size_t kLoaderBaseAddress = KERNEL_LOAD_BASE + kMaxKernelSize;

View File

@ -56,18 +56,19 @@ already_visited(uint32 *visited, int32 *_last, int32 *_num, uint32 fp)
static status_t
get_next_frame(addr_t fp, addr_t *next, addr_t *ip)
{
addr_t _fp = *(((addr_t*)fp) -3);
addr_t _sp = *(((addr_t*)fp) -2);
addr_t _lr = *(((addr_t*)fp) -1);
addr_t _pc = *(((addr_t*)fp) -0);
if (fp != 0) {
addr_t _fp = *(((addr_t*)fp) -3);
addr_t _sp = *(((addr_t*)fp) -2);
addr_t _lr = *(((addr_t*)fp) -1);
addr_t _pc = *(((addr_t*)fp) -0);
if (_lr > KERNEL_TOP) {
return B_BAD_ADDRESS;
*ip = (_fp != 0) ? _lr : _pc;
*next = _fp;
return B_OK;
}
*ip = (_fp != 0) ? _lr : _pc;
*next = _fp;
return B_OK;
return B_BAD_VALUE;
}