From e37fe155cd9d30c488980236e0b71e663c819f56 Mon Sep 17 00:00:00 2001 From: Franck Bui-Huu Date: Fri, 18 Aug 2006 16:18:07 +0200 Subject: [PATCH] --- yaml --- r: 36049 b: refs/heads/master c: 1fd6909802b837ed5510603846c0ce5938d296a1 h: refs/heads/master i: 36047: e1410dc26ed2e059b2269d2f9b6373025b45428a v: v3 --- [refs] | 2 +- trunk/arch/mips/kernel/process.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 208c9887ba41..b9e9a1579e6e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f83b854a1d2d28bc1ed86fec8a80940b59f8d932 +refs/heads/master: 1fd6909802b837ed5510603846c0ce5938d296a1 diff --git a/trunk/arch/mips/kernel/process.c b/trunk/arch/mips/kernel/process.c index 951bf9ca3ce9..e7b0b385fb2b 100644 --- a/trunk/arch/mips/kernel/process.c +++ b/trunk/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 */