parisc: use kernel_text_address() in unwind functions
Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
6c3215cd5d
commit
c790b41bac
|
@ -168,7 +168,7 @@ void unwind_table_remove(struct unwind_table *table)
|
|||
}
|
||||
|
||||
/* Called from setup_arch to import the kernel unwind info */
|
||||
int unwind_init(void)
|
||||
int __init unwind_init(void)
|
||||
{
|
||||
long start, stop;
|
||||
register unsigned long gp __asm__ ("r27");
|
||||
|
@ -233,7 +233,6 @@ static void unwind_frame_regs(struct unwind_frame_info *info)
|
|||
e = find_unwind_entry(info->ip);
|
||||
if (e == NULL) {
|
||||
unsigned long sp;
|
||||
extern char _stext[], _etext[];
|
||||
|
||||
dbg("Cannot find unwind entry for 0x%lx; forced unwinding\n", info->ip);
|
||||
|
||||
|
@ -281,8 +280,7 @@ static void unwind_frame_regs(struct unwind_frame_info *info)
|
|||
break;
|
||||
info->prev_ip = tmp;
|
||||
sp = info->prev_sp;
|
||||
} while (info->prev_ip < (unsigned long)_stext ||
|
||||
info->prev_ip > (unsigned long)_etext);
|
||||
} while (!kernel_text_address(info->prev_ip));
|
||||
|
||||
info->rp = 0;
|
||||
|
||||
|
@ -435,9 +433,8 @@ unsigned long return_address(unsigned int level)
|
|||
do {
|
||||
if (unwind_once(&info) < 0 || info.ip == 0)
|
||||
return 0;
|
||||
if (!__kernel_text_address(info.ip)) {
|
||||
if (!kernel_text_address(info.ip))
|
||||
return 0;
|
||||
}
|
||||
} while (info.ip && level--);
|
||||
|
||||
return info.ip;
|
||||
|
|
Loading…
Reference in New Issue