History log of /arch/parisc/kernel/unwind.c
Revision Date Author Comments
c790b41bac83512dc67da89b582daa6f4e1fab07 30-Nov-2013 Helge Deller <deller@gmx.de> parisc: use kernel_text_address() in unwind functions

Signed-off-by: Helge Deller <deller@gmx.de>
b1b1d4a6f244eb9513f006a188f7ed30d5014de5 10-Sep-2010 Phil Carmody <ext-phil.2.carmody@nokia.com> parisc: unwind - optimise linked-list searches for modules

Having many dozens of modules, the searches down the linked
list of sections would dominate the lookup time, dwarfing
any savings from the binary search within the section.

A simple move-to-front optimisation exploits the commonality
of the code paths taken, and in simple real-world tests
on other architectures reduced the number of steps in the
search to barely more than 1.

Signed-off-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Signed-off-by: Kyle McMartin <kyle@redhat.com>
8f78df872d463ac43315916663b3e688ebb2422f 07-Nov-2009 Helge Deller <deller@gmx.de> parisc: use sort() instead of home-made implementation (v2)

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Randolph Chung <tausq@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
11e178091f6a9c5ca479f8a276b9dd0dfacf8fc4 25-Oct-2009 Helge Deller <deller@gmx.de> parisc: add CALLER_ADDR{0-6} macros

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
33a932d14323b957a4e17a6c8428d3f048a30822 28-Nov-2009 Helge Deller <deller@gmx.de> parisc: fix unwind with recent gcc versions

kernel unwinding is broken with gcc >= 4.x. Part of the problem is that
binutils seems very sensitive to where the unwind information is stored.

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
e0e7ed4811ce32d48ca8ee9fd136357d093243a9 17-Dec-2008 Helge Deller <deller@gmx.de> parisc: fix GFP_KERNEL use while atomic in unwinder

Since unwind_frame_init_from_blocked_task() may be called from
interrupt/in_atomic context, it needs to kmalloc() memory with
GFP_ATOMIC instead of GFP_KERNEL.

This fixes this warning (ShowTasks called from sysrq handler):

BUG: sleeping function called from invalid context at mm/slab.c:3044
in_atomic(): 1, irqs_disabled(): 1, pid: 2119, name: miniruby
Backtrace:
[<10132e78>] __might_sleep+0x4c/0x118
[<1018f644>] kmem_cache_alloc+0x2c/0xb4
[<1011bae0>] unwind_frame_init_from_blocked_task+0x30/0xa0
[<1010fd3c>] parisc_show_stack+0x3c/0xac
[<10132c7c>] show_state_filter+0x80/0xd8
[<102f4074>] __handle_sysrq+0xd0/0x1b0
[<102f9558>] receive_chars+0x22c/0x318
[<102f9940>] serial8250_handle_port+0x40/0x88
[<102f9a8c>] serial8250_interrupt+0x104/0x10c
[<10161920>] handle_IRQ_event+0x44/0x94
[<10161acc>] __do_IRQ+0x15c/0x1dc
[<102c442c>] superio_interrupt+0x74/0xa8
[<10161920>] handle_IRQ_event+0x44/0x94
[<10161acc>] __do_IRQ+0x15c/0x1dc
[<10110fb4>] do_cpu_irq_mask+0x90/0xbc
[<10114068>] intr_return+0x0/0x4

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
f0514ae323f19ba1ad4bea4174ea274c812f7eee 11-Sep-2008 James Bottomley <James.Bottomley@HansenPartnership.com> parisc: initialize unwinder much earlier

The unwinder was being initialized way too late to be any use
debugging early boot crashes. Instead of relying on module_init
initcalls to initialize it, let's do it explicitly as early as
we can.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
7819994312fd4c3c04456abb6a64c810ecde3db4 18-Oct-2007 Kyle McMartin <kyle@mcmartin.ca> [PARISC] Kill incorrect cast warning in unwinder

Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
9281acea6a3687ff0f262e0be31eac34895b95d7 17-Jul-2007 Tejun Heo <htejun@gmail.com> kallsyms: make KSYM_NAME_LEN include space for trailing '\0'

KSYM_NAME_LEN is peculiar in that it does not include the space for the
trailing '\0', forcing all users to use KSYM_NAME_LEN + 1 when allocating
buffer. This is nonsense and error-prone. Moreover, when the caller
forgets that it's very likely to subtly bite back by corrupting the stack
because the last position of the buffer is always cleared to zero.

This patch increments KSYM_NAME_LEN by one and updates code accordingly.

* off-by-one bug in asm-powerpc/kprobes.h::kprobe_lookup_name() macro
is fixed.

* Where MODULE_NAME_LEN and KSYM_NAME_LEN were used together,
MODULE_NAME_LEN was treated as if it didn't include space for the
trailing '\0'. Fix it.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Acked-by: Paulo Marques <pmarques@grupopie.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
05dc16d6a175139a5872d08db56ee277ec90df5b 12-Jun-2007 Randolph Chung <tausq@debian.org> [PARISC] unwinder improvements

Add special-case handling for "handle_interruption" so that we can rewind
past the interruption. This is useful for seeing what caused a BUG() or
WARN_ON(); otherwise the unwind stops at the interruption.

Signed-off-by: Randolph Chung <tausq@debian.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
e036306aa1832963cd147849b282259a32f5ac08 12-Jun-2007 Randolph Chung <tausq@debian.org> [PARISC] Fix unwinder on 64-bit kernels

The unwinder was broken by the shift of PAGE_OFFSET in order to increase the
size of the vmalloc area on 64-bit kernels.

Signed-off-by: Randolph Chung <tausq@debian.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
cb9577958d85896303561d9cc8544885deb272be 30-May-2007 Kyle McMartin <kyle@parisc-linux.org> [PARISC] fix null ptr deref in unwind.c

commit ffb45122766db220d0bf3d01848d575fbbcb6430 removed one too many args.
kallsyms_lookup is not safe to call with a NULL *modname. Paper bag over the
problem for the time being.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
ffb45122766db220d0bf3d01848d575fbbcb6430 08-May-2007 Alexey Dobriyan <adobriyan@sw.ru> Simplify kallsyms_lookup()

Several kallsyms_lookup() pass dummy arguments but only need, say, module's
name. Make kallsyms_lookup() accept NULLs where possible.

Also, makes picture clearer about what interfaces are needed for all symbol
resolving business.

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
e6fc0449be45a0e7520da6a17a64520743b9aa20 15-Dec-2006 Matthew Wilcox <matthew@wil.cx> [PARISC] Remove sched.h from uaccess.h on parisc

Al Viro did this for x86-64 and reduced the number of dependencies on
sched.h significantly. We had a couple of files which were relying on
uaccess.h pulling in sched.h, so they need explicit dependencies added.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
5cbded585d129d0226cb48ac4202b253c781be26 13-Dec-2006 Robert P. J. Day <rpjday@mindspring.com> [PATCH] getting rid of all casts of k[cmz]alloc() calls

Run this:

#!/bin/sh
for f in $(grep -Erl "\([^\)]*\) *k[cmz]alloc" *) ; do
echo "De-casting $f..."
perl -pi -e "s/ ?= ?\([^\)]*\) *(k[cmz]alloc) *\(/ = \1\(/" $f
done

And then go through and reinstate those cases where code is casting pointers
to non-pointers.

And then drop a few hunks which conflicted with outstanding work.

Cc: Russell King <rmk@arm.linux.org.uk>, Ian Molton <spyro@f2s.com>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Greg KH <greg@kroah.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Paul Fulghum <paulkf@microgate.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Karsten Keil <kkeil@suse.de>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: Ian Kent <raven@themaw.net>
Cc: Steven French <sfrench@us.ibm.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Cc: Jaroslav Kysela <perex@suse.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
6ab3d5624e172c553004ecc862bfeac16d9d68b7 30-Jun-2006 Jörn Engel <joern@wohnheim.fh-wedel.de> Remove obsolete #include <linux/config.h>

Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
8039de10aae3cd4cf0ef0ccebd58aff0e8810df2 11-Jan-2006 Helge Deller <deller@parisc-linux.org> [PARISC] Add __read_mostly section for parisc

Flag a whole bunch of things as __read_mostly on parisc. Also flag a few
branches as unlikely() and cleanup a bit of code.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 17-Apr-2005 Linus Torvalds <torvalds@ppc970.osdl.org> Linux-2.6.12-rc2

Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!