diff options
| author | David S. Miller <davem@davemloft.net> | 2010-04-11 14:53:53 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-04-11 14:53:53 -0700 | 
| commit | 871039f02f8ec4ab2e5e9010718caa8e085786f1 (patch) | |
| tree | f0d2b3127fc48c862967d68c46c2d46668137515 /arch/powerpc/kernel/misc.S | |
| parent | e4077e018b5ead3de9951fc01d8bf12eeeeeefed (diff) | |
| parent | 4a1032faac94ebbf647460ae3e06fc21146eb280 (diff) | |
| download | olio-linux-3.10-871039f02f8ec4ab2e5e9010718caa8e085786f1.tar.xz olio-linux-3.10-871039f02f8ec4ab2e5e9010718caa8e085786f1.zip  | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
	drivers/net/stmmac/stmmac_main.c
	drivers/net/wireless/wl12xx/wl1271_cmd.c
	drivers/net/wireless/wl12xx/wl1271_main.c
	drivers/net/wireless/wl12xx/wl1271_spi.c
	net/core/ethtool.c
	net/mac80211/scan.c
Diffstat (limited to 'arch/powerpc/kernel/misc.S')
| -rw-r--r-- | arch/powerpc/kernel/misc.S | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/misc.S b/arch/powerpc/kernel/misc.S index 2d29752cbe1..22e507c8a55 100644 --- a/arch/powerpc/kernel/misc.S +++ b/arch/powerpc/kernel/misc.S @@ -127,3 +127,29 @@ _GLOBAL(__setup_cpu_power7)  _GLOBAL(__restore_cpu_power7)  	/* place holder */  	blr + +/* + * Get a minimal set of registers for our caller's nth caller. + * r3 = regs pointer, r5 = n. + * + * We only get R1 (stack pointer), NIP (next instruction pointer) + * and LR (link register).  These are all we can get in the + * general case without doing complicated stack unwinding, but + * fortunately they are enough to do a stack backtrace, which + * is all we need them for. + */ +_GLOBAL(perf_arch_fetch_caller_regs) +	mr	r6,r1 +	cmpwi	r5,0 +	mflr	r4 +	ble	2f +	mtctr	r5 +1:	PPC_LL	r6,0(r6) +	bdnz	1b +	PPC_LL	r4,PPC_LR_STKOFF(r6) +2:	PPC_LL	r7,0(r6) +	PPC_LL	r7,PPC_LR_STKOFF(r7) +	PPC_STL	r6,GPR1-STACK_FRAME_OVERHEAD(r3) +	PPC_STL	r4,_NIP-STACK_FRAME_OVERHEAD(r3) +	PPC_STL	r7,_LINK-STACK_FRAME_OVERHEAD(r3) +	blr  |