Merge branch 'akpm' (incoming from Andrew)
Merge third batch of fixes from Andrew Morton: "Most of the rest. I still have two large patchsets against AIO and IPC, but they're a bit stuck behind other trees and I'm about to vanish for six days. - random fixlets - inotify - more of the MM queue - show_stack() cleanups - DMI update - kthread/workqueue things - compat cleanups - epoll udpates - binfmt updates - nilfs2 - hfs - hfsplus - ptrace - kmod - coredump - kexec - rbtree - pids - pidns - pps - semaphore tweaks - some w1 patches - relay updates - core Kconfig changes - sysrq tweaks" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (109 commits) Documentation/sysrq: fix inconstistent help message of sysrq key ethernet/emac/sysrq: fix inconstistent help message of sysrq key sparc/sysrq: fix inconstistent help message of sysrq key powerpc/xmon/sysrq: fix inconstistent help message of sysrq key ARM/etm/sysrq: fix inconstistent help message of sysrq key power/sysrq: fix inconstistent help message of sysrq key kgdb/sysrq: fix inconstistent help message of sysrq key lib/decompress.c: fix initconst notifier-error-inject: fix module names in Kconfig kernel/sys.c: make prctl(PR_SET_MM) generally available UAPI: remove empty Kbuild files menuconfig: print more info for symbol without prompts init/Kconfig: re-order CONFIG_EXPERT options to fix menuconfig display kconfig menu: move Virtualization drivers near other virtualization options Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS relay: use macro PAGE_ALIGN instead of FIX_SIZE kernel/relay.c: move FIX_SIZE macro into relay.c kernel/relay.c: remove unused function argument actor drivers/w1/slaves/w1_ds2760.c: fix the error handling in w1_ds2760_add_slave() drivers/w1/slaves/w1_ds2781.c: fix the error handling in w1_ds2781_add_slave() ...
This commit is contained in:
@@ -112,6 +112,8 @@ void show_regs(struct pt_regs *r)
|
||||
{
|
||||
struct reg_window32 *rw = (struct reg_window32 *) r->u_regs[14];
|
||||
|
||||
show_regs_print_info(KERN_DEFAULT);
|
||||
|
||||
printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n",
|
||||
r->psr, r->pc, r->npc, r->y, print_tainted());
|
||||
printk("PC: <%pS>\n", (void *) r->pc);
|
||||
@@ -142,11 +144,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
|
||||
struct reg_window32 *rw;
|
||||
int count = 0;
|
||||
|
||||
if (tsk != NULL)
|
||||
task_base = (unsigned long) task_stack_page(tsk);
|
||||
else
|
||||
task_base = (unsigned long) current_thread_info();
|
||||
if (!tsk)
|
||||
tsk = current;
|
||||
|
||||
if (tsk == current && !_ksp)
|
||||
__asm__ __volatile__("mov %%fp, %0" : "=r" (_ksp));
|
||||
|
||||
task_base = (unsigned long) task_stack_page(tsk);
|
||||
fp = (unsigned long) _ksp;
|
||||
do {
|
||||
/* Bogus frame pointer? */
|
||||
@@ -162,17 +166,6 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
|
||||
printk("\n");
|
||||
}
|
||||
|
||||
void dump_stack(void)
|
||||
{
|
||||
unsigned long *ksp;
|
||||
|
||||
__asm__ __volatile__("mov %%fp, %0"
|
||||
: "=r" (ksp));
|
||||
show_stack(current, ksp);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(dump_stack);
|
||||
|
||||
/*
|
||||
* Note: sparc64 has a pretty intricated thread_saved_pc, check it out.
|
||||
*/
|
||||
|
@@ -163,6 +163,8 @@ static void show_regwindow(struct pt_regs *regs)
|
||||
|
||||
void show_regs(struct pt_regs *regs)
|
||||
{
|
||||
show_regs_print_info(KERN_DEFAULT);
|
||||
|
||||
printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
|
||||
regs->tpc, regs->tnpc, regs->y, print_tainted());
|
||||
printk("TPC: <%pS>\n", (void *) regs->tpc);
|
||||
@@ -292,7 +294,7 @@ static void sysrq_handle_globreg(int key)
|
||||
|
||||
static struct sysrq_key_op sparc_globalreg_op = {
|
||||
.handler = sysrq_handle_globreg,
|
||||
.help_msg = "global-regs(Y)",
|
||||
.help_msg = "global-regs(y)",
|
||||
.action_msg = "Show Global CPU Regs",
|
||||
};
|
||||
|
||||
@@ -362,7 +364,7 @@ static void sysrq_handle_globpmu(int key)
|
||||
|
||||
static struct sysrq_key_op sparc_globalpmu_op = {
|
||||
.handler = sysrq_handle_globpmu,
|
||||
.help_msg = "global-pmu(X)",
|
||||
.help_msg = "global-pmu(x)",
|
||||
.action_msg = "Show Global PMU Regs",
|
||||
};
|
||||
|
||||
|
@@ -2350,13 +2350,6 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
|
||||
} while (++count < 16);
|
||||
}
|
||||
|
||||
void dump_stack(void)
|
||||
{
|
||||
show_stack(current, NULL);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(dump_stack);
|
||||
|
||||
static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
|
||||
{
|
||||
unsigned long fp = rw->ins[6];
|
||||
|
Reference in New Issue
Block a user