Skip to content

Commit

Permalink
Blackfin arch: fix trace output for FLAT binaries
Browse files Browse the repository at this point in the history
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Mike Frysinger authored and Linus Torvalds committed May 21, 2007
1 parent 6784027 commit 8a0e665
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions arch/blackfin/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,10 @@ static int printk_address(unsigned long address)
struct vm_list_struct *vml;
struct task_struct *p;
struct mm_struct *mm;
unsigned long offset;

#ifdef CONFIG_KALLSYMS
unsigned long offset = 0, symsize;
unsigned long symsize;
const char *symname;
char *modname;
char *delim = ":";
Expand Down Expand Up @@ -106,12 +107,19 @@ static int printk_address(unsigned long address)
sizeof(_tmpbuf));
}

/* FLAT does not have its text aligned to the start of
* the map while FDPIC ELF does ...
*/
if (current->mm &&
(address > current->mm->start_code) &&
(address < current->mm->end_code))
offset = address - current->mm->start_code;
else
offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);

write_unlock_irq(&tasklist_lock);
return printk("<0x%p> [ %s + 0x%lx ]",
(void*)address, name,
(unsigned long)
((address - vma->vm_start) +
(vma->vm_pgoff << PAGE_SHIFT)));
(void*)address, name, offset);
}

vml = vml->next;
Expand Down

0 comments on commit 8a0e665

Please sign in to comment.