summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2006-06-26 13:57:47 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-26 10:48:18 -0700
commitc33bd9aac0597eeedaaa01ea5aafe456894b2f2b (patch)
treecdac9bb99eb3943feccc2a21d09a1524a8867cb0 /include
parentfe7cacc1c25e286872b878c5d46880b620cd1e2d (diff)
downloadlinux-c33bd9aac0597eeedaaa01ea5aafe456894b2f2b.tar.bz2
[PATCH] i386/x86-64: fall back to old-style call trace if no unwinding
If no unwinding is possible at all for a certain exception instance, fall back to the old style call trace instead of not showing any trace at all. Also, allow setting the stack trace mode at the command line. Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-i386/unwind.h8
-rw-r--r--include/asm-x86_64/unwind.h8
-rw-r--r--include/linux/unwind.h8
3 files changed, 12 insertions, 12 deletions
diff --git a/include/asm-i386/unwind.h b/include/asm-i386/unwind.h
index 1c076897ac21..d480f2e38215 100644
--- a/include/asm-i386/unwind.h
+++ b/include/asm-i386/unwind.h
@@ -66,10 +66,10 @@ static inline void arch_unw_init_blocked(struct unwind_frame_info *info)
info->regs.xes = __USER_DS;
}
-extern asmlinkage void arch_unwind_init_running(struct unwind_frame_info *,
- asmlinkage void (*callback)(struct unwind_frame_info *,
- void *arg),
- void *arg);
+extern asmlinkage int arch_unwind_init_running(struct unwind_frame_info *,
+ asmlinkage int (*callback)(struct unwind_frame_info *,
+ void *arg),
+ void *arg);
static inline int arch_unw_user_mode(const struct unwind_frame_info *info)
{
diff --git a/include/asm-x86_64/unwind.h b/include/asm-x86_64/unwind.h
index 4f61de246179..f3e7124effe3 100644
--- a/include/asm-x86_64/unwind.h
+++ b/include/asm-x86_64/unwind.h
@@ -75,10 +75,10 @@ static inline void arch_unw_init_blocked(struct unwind_frame_info *info)
info->regs.ss = __KERNEL_DS;
}
-extern void arch_unwind_init_running(struct unwind_frame_info *,
- void (*callback)(struct unwind_frame_info *,
- void *arg),
- void *arg);
+extern int arch_unwind_init_running(struct unwind_frame_info *,
+ int (*callback)(struct unwind_frame_info *,
+ void *arg),
+ void *arg);
static inline int arch_unw_user_mode(const struct unwind_frame_info *info)
{
diff --git a/include/linux/unwind.h b/include/linux/unwind.h
index 0295aa789ab4..13c7b2cd87ce 100644
--- a/include/linux/unwind.h
+++ b/include/linux/unwind.h
@@ -49,8 +49,8 @@ extern int unwind_init_blocked(struct unwind_frame_info *,
* Prepare to unwind the currently running thread.
*/
extern int unwind_init_running(struct unwind_frame_info *,
- asmlinkage void (*callback)(struct unwind_frame_info *,
- void *arg),
+ asmlinkage int (*callback)(struct unwind_frame_info *,
+ void *arg),
void *arg);
/*
@@ -97,8 +97,8 @@ static inline int unwind_init_blocked(struct unwind_frame_info *info,
}
static inline int unwind_init_running(struct unwind_frame_info *info,
- asmlinkage void (*cb)(struct unwind_frame_info *,
- void *arg),
+ asmlinkage int (*cb)(struct unwind_frame_info *,
+ void *arg),
void *arg)
{
return -ENOSYS;