diff options
author | Franck Bui-Huu <vagabon.xyz@gmail.com> | 2006-08-18 16:18:07 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-09-27 13:37:58 +0100 |
commit | 1fd6909802b837ed5510603846c0ce5938d296a1 (patch) | |
tree | 5b9bb20189d38749b339990922a6059fb28ea3fd /arch/mips | |
parent | f83b854a1d2d28bc1ed86fec8a80940b59f8d932 (diff) | |
download | linux-1fd6909802b837ed5510603846c0ce5938d296a1.tar.gz linux-1fd6909802b837ed5510603846c0ce5938d296a1.tar.bz2 linux-1fd6909802b837ed5510603846c0ce5938d296a1.zip |
[MIPS] unwind_stack(): return ra if an exception occured at the first instruction
Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/kernel/process.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 951bf9ca3ce9..e7b0b385fb2b 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c @@ -465,8 +465,11 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp, if (!kallsyms_lookup(pc, &size, &ofs, &modname, namebuf)) return 0; - if (ofs == 0) - return 0; + /* + * Return ra if an exception occured at the first instruction + */ + if (unlikely(ofs == 0)) + return ra; info.func = (void *)(pc - ofs); info.func_size = ofs; /* analyze from start to ofs */ |