]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/blobdiff - drivers/misc/tegra-profiler/dwarf_unwind.c
misc: tegra-profiler: add unwind entry checking
[sojka/nv-tegra/linux-3.10.git] / drivers / misc / tegra-profiler / dwarf_unwind.c
index 2e624352c4b73d3884f57aaf1205b5bb62e3ed59..d48e4b8da817a0c11a0e86c8eee3068e881d1a74 100644 (file)
@@ -1989,6 +1989,7 @@ unwind_backtrace(struct quadd_callchain *cc,
                        cc->curr_fp_thumb = sf->vregs[ARM32_FP_THUMB];
 
                cc->curr_pc = sf->pc;
+               cc->curr_lr = sf->vregs[regnum_lr(mode)];
 
                nr_added = quadd_callchain_store(cc, sf->pc, unw_type);
                if (nr_added == 0)
@@ -2048,7 +2049,7 @@ quadd_get_user_cc_dwarf(struct pt_regs *regs,
                sp = cc->curr_sp;
                fp = cc->curr_fp;
                fp_thumb = cc->curr_fp_thumb;
-               lr = 0;
+               lr = cc->curr_lr;
        } else {
                ip = instruction_pointer(regs);
                lr = quadd_user_link_register(regs);