|
@@ -153,7 +153,7 @@ void show_regs(struct pt_regs *regs)
|
|
|
{
|
|
|
struct task_struct *tsk = current;
|
|
|
|
|
|
- printk("CPU: %d %s\n", tsk->thread_info->cpu, print_tainted());
|
|
|
+ printk("CPU: %d %s\n", task_thread_info(tsk)->cpu, print_tainted());
|
|
|
printk("Process %s (pid: %d, task: %p, ksp: %p)\n",
|
|
|
current->comm, current->pid, (void *) tsk,
|
|
|
(void *) tsk->thread.ksp);
|
|
@@ -357,11 +357,10 @@ unsigned long get_wchan(struct task_struct *p)
|
|
|
unsigned long return_address;
|
|
|
int count;
|
|
|
|
|
|
- if (!p || p == current || p->state == TASK_RUNNING || !p->thread_info)
|
|
|
+ if (!p || p == current || p->state == TASK_RUNNING || !task_stack_page(p))
|
|
|
return 0;
|
|
|
- low = (struct stack_frame *) p->thread_info;
|
|
|
- high = (struct stack_frame *)
|
|
|
- ((unsigned long) p->thread_info + THREAD_SIZE) - 1;
|
|
|
+ low = task_stack_page(p);
|
|
|
+ high = (struct stack_frame *) task_pt_regs(p);
|
|
|
sf = (struct stack_frame *) (p->thread.ksp & PSW_ADDR_INSN);
|
|
|
if (sf <= low || sf > high)
|
|
|
return 0;
|