X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=arch%2Fparisc%2Fkernel%2Fprocess.c;h=b80e02a4d81de3d193ec1faae269b7614a783cf1;hb=8568dae21e186fbb111bbe6583033a33fe26f83d;hp=dfca014b49bafc2c2758a508f2396f2a0ebb752e;hpb=c2c4798e04ef836b12f5df04e7d1a1710cb39301;p=linux-2.6 diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c index dfca014b49..b80e02a4d8 100644 --- a/arch/parisc/kernel/process.c +++ b/arch/parisc/kernel/process.c @@ -13,7 +13,7 @@ * Copyright (C) 2000 Grant Grundler * Copyright (C) 2001 Alan Modra * Copyright (C) 2001-2002 Ryan Bradetich - * Copyright (C) 2001-2002 Helge Deller + * Copyright (C) 2001-2007 Helge Deller * Copyright (C) 2002 Randolph Chung * * @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -303,7 +304,7 @@ copy_thread(int nr, unsigned long clone_flags, unsigned long usp, * Copy function and argument to be called from * ret_from_kernel_thread. */ -#ifdef __LP64__ +#ifdef CONFIG_64BIT cregs->gr[27] = pregs->gr[27]; #endif cregs->gr[26] = pregs->gr[26]; @@ -381,6 +382,10 @@ get_wchan(struct task_struct *p) struct unwind_frame_info info; unsigned long ip; int count = 0; + + if (!p || p == current || p->state == TASK_RUNNING) + return 0; + /* * These bracket the sleeping functions.. */